NoaDebug
このクラスを介して、NOA Debuggerの初期化や起動などの制御をスクリプトから実行できます。
API一覧
Static Methods
API | 説明 |
---|---|
Initialize() | ツールを初期化します。 |
Show() | ツールを起動して最後に表示したメニューを開きます。 |
Show(index, isCustomMenu) | ツールを起動して指定のメニューを開きます。 isCustomMenuがtrueの場合は独自のメニューを開きます。 |
Show(menuType) | ツールを起動して指定のメニューを開きます。 独自メニューには対応していません。 |
Hide() | ツールを閉じ、有効状態のオーバーレイ/専用ウィンドウを表示します。 |
SetDebuggerActive(isActive) | ツールの表示/非表示を行います。 |
SetOverlayActive(isActive) | ツールのオーバーレイの表示/非表示を行います。 |
SetOverlayEnabled(feature, isEnabled) | 指定機能のオーバーレイを有効/無効にします。 |
GetOverlayEnabled(feature) | 指定機能のオーバーレイ有効状態を取得します。 |
SetFloatingWindowActive(isActive) | ツールの専用ウィンドウの表示/非表示を行います。 |
SetTriggerButtonActive(isActive) | ツールの起動ボタンの表示/非表示を行います。 |
SetFont(fontAsset, fontMaterial, fontSizeRate) | ツールに使用するフォントの設定を行います。 fontMaterialを省略した場合は指定したフォントアセットのデフォルトのマテリアルを適用します。 fontSizeRateを省略した場合は等倍サイズとして扱います。 |
Instantiate(prefab, group) | ツールのUIと同じ階層にオブジェクトを生成します。 指定できる階層は以下のとおりです。 - NoaDebug.HierarchyLevelGroup.FloatingWindow: 専用ウィンドウの階層 - NoaDebug.HierarchyLevelGroup.UIElement: NoaUIElementの階層 - NoaDebug.HierarchyLevelGroup.MainView: 通常ビューの階層 - NoaDebug.HierarchyLevelGroup.Dialog: ダイアログの階層 - NoaDebug.HierarchyLevelGroup.Overlay: オーバーレイの階層 |
SetShortcutsEnabled(isEnabled) | ショートカットを有効/無効にします。 |
EnableWorldSpaceRendering(worldCamera) | ツールをワールド座標上に表示します。 引数を省略した場合は、Canvasの描画にMainCameraを適用します。 ワールド座標上に表示している間は、オーバーレイと専用ウィンドウと起動ボタンは表示しません。 |
DisableWorldSpaceRendering() | ツールを2Dスクリーン座標上に表示します。 |
CopyToClipboard(text) | 指定したテキストをクリップボードにコピーします。 コピー可能なサイズはプラットフォーム及び端末のスペック、メモリ利用状況に依存します。 サイズ超過によりコピーに失敗した場合、以下のような挙動を確認しています。 - エラーログを出力する - アプリケーションがクラッシュする - メモリ不足によりアプリケーションが応答しなくなる ※Webプラットフォームの場合、事前に権限を付与するかボタン押下などユーザー操作をトリガーに実行しないと機能しません。 |
DownloadText(text, fileName, mimeType) | 指定したテキストを指定した名前のファイルとしてダウンロードします。 mimeTypeはAndroid版とWeb版のダウンロードダイアログの表示に使用します。指定方法についてはこちらのドキュメントを参照してください。 ダウンロードしたファイルの格納先はデータのダウンロードについてを参照してください。 |
Destroy() | ツールを破棄します。 |
Static Properties
API | 説明 |
---|---|
OnShow | ツールの起動時に発火するコールバックです。 コールバック発火時にメニューのindex値を取得できます。 |
OnHide | ツールが閉じた時に発火するコールバックです。 コールバック発火時にメニューのindex値を取得できます。 |
OnMenuChanged | ツールのメニューが切り替わった時に発火するコールバックです。 コールバック発火時に切り替わった後のメニューのindex値と独自メニューかどうかのフラグを取得できます。 |
RootTransform | ツールの最上位階層のTransformへの参照を返します。 |
IsInitialized | ツールを初期化されている場合、trueを返します。 |
IsShortcutsEnabled | ショートカットが有効な場合、trueを返します。 |
IsWorldSpaceRenderingEnabled | ツールをワールド座標上に表示している場合、trueを返します。 |
IsDebuggerVisible | ツールを表示している場合、trueを返します。 |
IsTriggerButtonVisible | ツールの起動ボタンを表示している場合、trueを返します。 |
IsOverlayVisible | オーバーレイを表示している場合、trueを返します。 |
IsFloatingWindowVisible | 専用ウィンドウを表示している場合、trueを返します。 |
サンプルコード
using System.Text;
using UnityEngine;
#if NOA_DEBUGGER
using NoaDebugger;
#endif
public class Example
{
void ExampleMethod()
{
#if NOA_DEBUGGER
// ツールの初期化を実行
NoaDebug.Initialize();
// ツールの初期化が完了しているかどうか
bool isDebuggerInit = NoaDebug.IsInitialized;
// ツール起動時に実行したいコールバックを指定する
NoaDebug.OnShow = (index) => Debug.Log($"showIndex:{index}");
// ツールの最後に表示したメニューを開く
NoaDebug.Show();
// ツールを閉じた時に実行したいコールバックを指定する
NoaDebug.OnHide = (index) => Debug.Log($"hideIndex:{index}");
// ツールを閉じる
NoaDebug.Hide();
// ツールの指定したindexを開く
NoaDebug.Show(3);
// 指定したメニューを開く
NoaDebug.Show(NoaDebug.MenuType.Profiler);
// ツールのメニュー切り替わり時に実行したいコールバックを指定する
NoaDebug.OnMenuChanged = (index, isCustomMenu) => Debug.Log($"menuIndex:{index} isCustomMenu:{isCustomMenu}");
// ツールを非表示にする
NoaDebug.SetDebuggerActive(false);
// ツールを表示する
NoaDebug.SetDebuggerActive(true);
// ツールのオーバーレイを非表示にする
NoaDebug.SetOverlayActive(false);
// ツールのオーバーレイを表示する
NoaDebug.SetOverlayActive(true);
// Profilerのオーバーレイ有効状態を取得する
bool isProfilerEnabled = NoaDebug.GetOverlayEnabled(NoaDebug.OverlayFeatures.Profiler);
// Profilerのオーバーレイを無効にする
NoaDebug.SetOverlayEnabled(NoaDebug.OverlayFeatures.Profiler, false);
// Profilerのオーバーレイを有効にする
NoaDebug.SetOverlayEnabled(NoaDebug.OverlayFeatures.Profiler, true);
// ツールの専用ウィンドウを非表示にする
NoaDebug.SetFloatingWindowActive(false);
// ツールの専用ウィンドウを表示する
NoaDebug.SetFloatingWindowActive(true);
// ツールの起動ボタンを非表示にする
NoaDebug.SetTriggerButtonActive(false);
// ツールの起動ボタンを表示する
NoaDebug.SetTriggerButtonActive(true);
// ツールに使用するフォントを設定する
var assetBundle = AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/ExampleFont");
var fontAsset = assetBundle.LoadAsset<TMP_FontAsset>("Assets/AssetBundleResources/ExampleFont.asset");
NoaDebug.SetFont(fontAsset, fontAsset.material, 1.0f);
// ツールの階層に独自のオブジェクトを生成する
var obj = Resources.Load<GameObject>("Prefabs/ExamplePrefab");
NoaDebug.Instantiate(obj, NoaDebug.HierarchyLevelGroup.Dialog);
// ショートカットを無効にする
NoaDebug.SetShortcutsEnabled(false);
// ショートカットを有効にする
NoaDebug.SetShortcutsEnabled(true);
// ショートカットが有効であるか
bool isShortcutsEnabled = NoaDebug.IsShortcutsEnabled;
// ツールをワールド座標上に表示する
NoaDebug.EnableWorldSpaceRendering(Camera.main);
// ツールの最上位階層のTransformへの参照を取得する
Transform noaDebuggerRoot = NoaDebug.RootTransform;
// ツールの座標・回転角・スケールを変更する
// - ワールド座標上に表示している場合のみ適用されます。
// - サイズの変更はスケールで制御してください。
// - NOA Debuggerのキャンバスサイズは1136x640となっているため、以下の例ではおよそ3x1.7mの大きさとなります。
noaDebuggerRoot.localPosition = Vector3.zero;
noaDebuggerRoot.localEulerAngles = Vector3.zero;
noaDebuggerRoot.localScale = new Vector3(0.00264f, 0.00264f, 0.00264f);
// ツールのレイヤーを変更する
noaDebuggerRoot.gameObject.layer = 0;
// ツールをワールド座標上に表示しているか
bool isWorldSpace = NoaDebug.IsWorldSpaceRenderingEnabled;
// ツールを2Dスクリーン座標上に表示する
NoaDebug.DisableWorldSpaceRendering();
// 指定のテキストをクリップボードにコピーする
NoaDebug.CopyToClipboard("sample text to clipboard");
// 指定のテキストをプレーンテキストとしてダウンロードする
NoaDebug.DownloadText("sample text", "sample.txt", "text/plain");
string[][] sampleData =
{
new [] { "No", "Name", "Value" },
new [] { "1", "sample1", "100" },
new [] { "2", "sample2", "1000" },
new [] { "3", "sample3", "500" }
};
// 指定のテキストをJSONファイルとしてダウンロードする
string sampleJson = JsonUtility.ToJson(sampleData);
NoaDebug.DownloadText(sampleJson, "sample.json", "application/json");
// 指定のテキストをCSVファイルとしてダウンロードする
StringBuilder stringBuilder = new StringBuilder();
foreach (string[] row in sampleData)
{
stringBuilder.AppendJoin(",", row);
stringBuilder.AppendLine();
}
string sampleCsv = stringBuilder.ToString();
NoaDebug.DownloadText(sampleCsv, "sample.csv", "text/csv");
// ツールを表示しているか
bool isDebuggerVisible = NoaDebug.IsDebuggerVisible;
// ツールの起動ボタンを表示しているか
bool isTriggerButtonVisible = NoaDebug.IsTriggerButtonVisible;
// オーバーレイを表示しているか
bool isOverlayVisible = NoaDebug.IsOverlayVisible;
// 専用ウィンドウを表示しているか
bool isFloatingWindowVisible = NoaDebug.IsFloatingWindowVisible;
// ツールの破棄を実行
NoaDebug.Destroy();
#endif
}
}