Chapter 03

ImGui の Window

ousttrue
ousttrue
2021.12.25に更新

基本

if (ImGuiNET.ImGui.Begin("hello"))
{
	// Window が折りたたまれていると false(左上の三角)
	ImGuiNET.ImGui.TextUnformatted("hello");
}
ImGuiNET.ImGui.End();

右上の閉じるボタン

// menu などから true に変更する方法が必用
bool m_show = true;

private void OnLayout(UImGui.UImGui uImGui)
{
    if (m_show)
    {
        // m_show 引数があると 右上に閉じるボタンを表示する
	if (ImGuiNET.ImGui.Begin("hello", ref m_show))
	{
	    ImGuiNET.ImGui.TextUnformatted("hello");
	}
	ImGuiNET.ImGui.End();
    }
}

次の Window のサイズを指定する

// viewport 全体を覆う例
var pos = viewport.Pos;
var size = viewport.Size;
ImGui.SetNextWindowPos(pos);
ImGui.SetNextWindowSize(size);
// 次の ImGui.Begin が影響を受ける

mouse イベントのハンドリング

例えばマウスの左ドラッグでゲーム本体の視点が移動する場合に、
ImGui のスライダーをドラッグすると両方動いてしまいます。
ImGui がイベントを消化するか否かの判定をします。

io.WantCaptureMouse