NoaUIElement
NoaUIElementは、NOA Debuggerを使用して画面上にさまざまなUI要素を動的に登録および表示するための便利なインターフェースを提供します。
このクラスを使用することで、開発者はUI要素の生成、管理、および位置調整を簡単に行うことができます。
注意:NoaUIElementはuGUIのCanvas内での使用を想定しており、3D空間上での利用はサポートしていません。
API一覧
Static Methods
API | 説明 |
---|---|
RegisterUIElement(element) | 新しいUI要素を登録します。 |
UnregisterUIElement(key) | 指定されたキーに基づいてUI要素の登録を解除します。 |
UnregisterAllUIElements() | すべてのUI要素の登録を解除します。 |
IsUIElementRegistered(key) | 指定されたキーで単一のUI要素が登録されているか確認します。 |
IsUIElementRegistered() | いずれかのUI要素が登録されているか確認します。 |
SetUIElementVisibility(key, isVisible) | 単一のUI要素の表示・非表示を設定します。 |
SetAllUIElementsVisibility(isVisible) | すべてのUI要素の表示・非表示を設定します。 |
IsUIElementVisible(key) | 指定されたキーで単一のUI要素が表示されているか確認します。 |
IsUIElementVisible() | すべてのUI要素が表示されているか確認します。 |
サンプルコード
using System.Collections.Generic;
using UnityEngine;
#if NOA_DEBUGGER
using NoaDebugger;
#endif
public class Example
{
void ExampleMethod()
{
#if NOA_DEBUGGER
// テキスト要素を登録(アンカータイプで指定)
NoaUIElement.RegisterUIElement(
NoaUITextElement.Create(
key: "DebugText", // UI要素のユニークなキー
value: () => $"Current Time: {Time.time}", // テキスト表示内容
anchorType: AnchorType.UpperLeft, // アンカーの位置
updateInterval: 0.5f // 更新間隔(秒単位)
)
);
// ボタン要素を登録(親オブジェクトで指定)
NoaUIElement.RegisterUIElement(
NoaUIButtonElement.Create(
key: "ExampleButton", // UI要素のユニークなキー
label: "Click Me", // ボタンのラベル
onClick: OnButtonClicked, // ボタンクリック時のコールバック
parent: parentTransform // 親オブジェクトのTransform
)
);
// カスタムオブジェクト要素を登録(アンカータイプで指定)
GameObject customPrefab = Resources.Load<GameObject>("CustomPrefab");
NoaUIElement.RegisterUIElement(
NoaUIObjectElement.Create(
key: "CustomObject", // UI要素のユニークなキー
prefab: customPrefab, // カスタムプレハブ
onObjectCreated: OnCustomObjectCreated, // オブジェクト生成時のコールバック
anchorType: AnchorType.UpperCenter, // アンカーの位置
width: 200f, // 幅(ピクセル単位)
height: 100f // 高さ(ピクセル単位)
)
);
// 任意のタイミングでUI要素を解除
NoaUIElement.UnregisterUIElement("DebugText");
// 全てのUI要素を解除
NoaUIElement.UnregisterAllUIElements();
// 単一のUI要素が登録されているか確認
bool isTextRegistered = NoaUIElement.IsUIElementRegistered("DebugText");
// 少なくとも1つのUI要素が登録されているか確認
bool hasRegisteredElements = NoaUIElement.IsUIElementRegistered();
// 単一のUI要素を非表示に設定
NoaUIElement.SetUIElementVisibility("ExampleButton", false);
// すべてのUI要素を表示に設定
NoaUIElement.SetAllUIElementsVisibility(true);
// 単一のUI要素が表示されているか確認
bool isButtonVisible = NoaUIElement.IsUIElementVisible("ExampleButton");
// すべてのUI要素が表示されているか確認
bool areAllVisible = NoaUIElement.IsUIElementVisible();
#endif
}
// ボタンがクリックされた時のコールバック
void OnButtonClicked()
{
Debug.Log("Button was clicked!");
}
// カスタムオブジェクトが生成された時のコールバック
void OnCustomObjectCreated(GameObject obj)
{
Debug.Log("Custom object created: " + obj.name);
}
}