NoaController
このクラスを介して、コントローラー上における各種操作などの制御をスクリプトから実行できます。
API一覧
Static Methods
API | 説明 |
---|---|
Show() | コントローラーを表示します。 |
Hide() | コントローラーを閉じます。 |
SetCustomTapAction(buttonIndex, action, messageFunc) | コントローラー上のカスタムアクションボタン (0〜4) 押下時のアクションを設定します。 messageFuncを省略した場合はデフォルトのトーストメッセージを表示し、nullを返した場合はトーストメッセージを表示しません。 |
SetCustomLongPressAction(buttonIndex, action, messageFunc) | コントローラー上のカスタムアクションボタン (0〜4) 長押し時のアクションを設定します。 messageFuncを省略した場合はデフォルトのトーストメッセージを表示し、nullを返した場合はトーストメッセージを表示しません。 |
SetCustomToggleAction(buttonIndex, action, messageFunc, initialState) | コントローラー上のカスタムアクションボタン (0〜4) のトグル切り替え時のアクションを設定します。 messageFuncを省略した場合はデフォルトのトーストメッセージを表示し、nullを返した場合はトーストメッセージを表示しません。 initialStateでトグルの初期状態を指定でき、省略時はfalseとなります。 |
SetCustomActionType(buttonIndex, actionType) | コントローラー上のカスタムアクションボタン (0〜4) の機能を切り替えます。 設定できる機能は以下のとおりです。 - NoaController.CustomActionType.Button: 押下・長押しでアクションを発動するボタンとなります。設定しない場合はこちらがデフォルトとなります。 - NoaController.CustomActionType.ToggleButton: トグルボタンとなります。 |
GetCustomActionType(buttonIndex) | コントローラー上のカスタムアクションボタン (0〜4) に設定しているアクションタイプを取得します。 アクションが登録されていない場合は、CustomActionType.Defaultが返ります。 |
RunCustomTapAction(buttonIndex) | コントローラー上のカスタムアクションボタン (0〜4) 押下時に設定したアクションを実行します。 押下時のアクションが設定されていない場合は何も行いません。 |
RunCustomLongPressAction(buttonIndex) | コントローラー上のカスタムアクションボタン (0〜4) 長押し時に設定したアクションを実行します。 長押し時のアクションが設定されていない場合は何も行いません。 |
SetCustomToggle(buttonIndex, isOn) | コントローラー上のカスタムアクションボタン (0〜4) のトグルを切り替えます。 トグル切り替え時のアクションが設定されていない場合は何も行いません。 |
GetCustomToggle(buttonIndex) | コントローラー上のカスタムアクションボタン (0〜4) のトグルの状態を返します。 トグル切り替え時のアクションが設定されていない場合はfalseを返します。 |
TogglePauseResume() | ゲームの一時停止と再開を切り替えます。 |
IncreaseGameSpeed() | ゲーム速度を速くします。 |
DecreaseGameSpeed() | ゲーム速度を遅くします。 |
MinimizeGameSpeed() | ゲーム速度を最小化します。 |
MaximizeGameSpeed() | ゲーム速度を最大化します。 |
FrameStepping() | ゲームを一時停止しコマ送りします。 |
ResetGameSpeed() | ゲーム速度を初期値に戻します。 |
ResetApplication() | アプリケーションの初回シーンに遷移します。 遷移時に呼ばれるコールバックの返り値で処理をキャンセルすることができます。 |
ToggleNoaDebuggerUI() | NOA Debugger関連UIの表示・非表示を切り替えます。 切り替え時に呼ばれるコールバックの返り値で処理をキャンセルすることができます。 |
CaptureScreenshot() | スクリーンショットを撮影します。 クラッシュ時にスクリーンショットを撮影する場合、レンダリングが完了していないために正常に動作しないことがあります。 |
GetCapturedScreenshot() | 撮影されたスクリーンショット画像を取得します。撮影されたスクリーンショット画像が存在しない場合はnullを返します。 |
ClearCapturedScreenshot() | 撮影されたスクリーンショット画像をクリアします。 |
Static Properties
API | 説明 |
---|---|
OnShow | コントローラー表示時に発火するコールバックです。 |
OnHide | コントローラーを閉じた時に発火するコールバックです。 |
OnTogglePauseResume | ツールでゲームの一時停止と再開を切り替えた時に発火するコールバックです。 コールバック発火時に変更後のゲーム再生状態を取得できます。 |
OnGameSpeedChanged | ツールでゲーム速度を変更した時に発火するコールバックです。 コールバック発火時に変更後のゲーム速度を取得できます。 |
OnApplicationReset | ツールでアプリケーションリセットが発火した時のコールバックです。 コールバックがtrueを返す場合はアプリケーションの初回シーンに遷移しますが、falseを返す場合は遷移を行いません。 |
OnToggleNoaDebuggerUI | NOA Debugger関連UIの表示・非表示を切り替える時に発火するコールバックです。 コールバックがtrueを返す場合は処理を行い、falseを返す場合は処理を行いません。 |
OnBeforeScreenshot | スクリーンショット撮影前に発火するコールバックです。 コールバックの返り値でスクリーンショットの内容を制御します。 返り値には以下のフラグの組み合わせを指定します。 - NoaController.ScreenshotTarget.All: 全てのNOA Debugger関連UIを含みます。 - NoaController.ScreenshotTarget.LaunchButton: 起動ボタンを含みます。 - NoaController.ScreenshotTarget.FloatingWindows: 専用ウィンドウを含みます。 - NoaController.ScreenshotTarget.UIElement: NoaUIElementを含みます。 - NoaController.ScreenshotTarget.MainView: 通常ビューを含みます。 - NoaController.ScreenshotTarget.Overlay: オーバーレイを含みます。 - NoaController.ScreenshotTarget.None: NOA Debugger関連のUIを含みません。 |
OnCaptureScreenshot | スクリーンショット撮影時に発火するコールバックです。 コールバックがtrueを返す場合は撮影を行い、falseを返す場合は撮影を行わずGetCapturedScreenshot()もnullを返します。 |
OnAfterScreenshot | スクリーンショット撮影後に発火するコールバックです。 撮影したスクリーンショット画像は、このコールバックの内部もしくはコールバックが呼ばれた以降のタイミングでGetCapturedScreenshot()によって取得できます。 OnCaptureScreenshotがfalseを返した場合にも発火しますが、GetCapturedScreenshot()で返される画像データはnullとなります。 |
OnFrameStepping | ツールでコマ送りした時に発火するコールバックです。 |
IsVisible | コントローラーを表示している場合、trueを返します。 |
IsGamePlaying | ゲームが再生中であればtrue、一時停止中であればfalseを返します。 |
GameSpeed | ツールで設定したゲーム速度を返します。 |
サンプルコード
using UnityEngine;
#if NOA_DEBUGGER
using NoaDebugger;
#endif
public class Example
{
void ExampleMethod()
{
#if NOA_DEBUGGER
// コントローラーを表示する
NoaController.Show();
// コントローラーを閉じる
NoaController.Hide();
// コントローラー表示時のコールバックを設定する
NoaController.OnShow = () => Debug.Log("Show controller.");
// コントローラーを閉じた時のコールバックを設定する
NoaController.OnHide = () => Debug.Log("Hide controller.");
// コントローラーを表示しているか
bool isControllerVisible = NoaController.IsVisible;
// コントローラーのカスタムアクションボタン#0押下時のアクションを設定し、実行時にデフォルトのトーストメッセージを表示する
NoaController.SetCustomTapAction(0, () => Debug.Log("Controller #0 tapped"));
// コントローラーのカスタムアクションボタン#0押下時のアクションを実行する
NoaController.RunCustomTapAction(0);
// コントローラーのカスタムアクションボタン#0長押し時のアクションを設定し、実行時にトーストメッセージを表示しない
NoaController.SetCustomLongPressAction(0, () => Debug.Log("Controller #0 long pressed"), () => null);
// コントローラーのカスタムアクションボタン#0長押し時のアクションを実行する
NoaController.RunCustomLongPressAction(0);
// コントローラーのカスタムアクションボタン#1のトグル切り替え時のアクションを設定し、実行時に指定のトーストメッセージを表示する
// カスタムアクションボタンはデフォルトでは押下・長押し時に機能するボタンとなるため、トグルとして機能するよう設定する必要があります。
NoaController.SetCustomActionType(1, NoaController.CustomActionType.ToggleButton);
// カスタムアクションボタンのアクションタイプを取得する
CustomActionType actionType = NoaController.GetCustomActionType(0);
// このトグルはOff状態から始まる
NoaController.SetCustomToggleAction(
1,
isOn => Debug.Log($"Controller #1 toggled: {isOn}"),
isOn => $"Controller #1 toggled: {isOn}",
false);
// コントローラーのカスタムアクションボタン#1のトグルを切り替える
NoaController.SetCustomToggle(1, true);
// コントローラーのカスタムアクションボタン#1のトグルを取得
bool customToggle = NoaController.GetCustomToggle(1);
// ゲームの一時停止と再開を切り替える
NoaController.TogglePauseResume();
// ゲーム速度を速くする
NoaController.IncreaseGameSpeed();
// ゲーム速度を遅くする
NoaController.DecreaseGameSpeed();
// ゲーム速度を最小化する
NoaController.MinimizeGameSpeed();
// ゲーム速度を最大化する
NoaController.MaximizeGameSpeed();
// コマ送りする
NoaController.FrameStepping();
// ゲーム速度を初期値に戻す
NoaController.ResetGameSpeed();
// ゲームの一時停止と再開を切り替えた時のコールバックを設定
NoaController.OnTogglePauseResume = isPlaying => Debug.Log($"Game playing state has been changed: {isPlaying}");
// ゲーム速度変更時のコールバックを設定
NoaController.OnGameSpeedChanged = gameSpeed => Debug.Log($"Game speed has been changed: {gameSpeed}");
// コマ送りした時のコールバックを設定
NoaController.OnFrameStepping = () => Debug.Log("Frame stepping was executed.");
// ゲームの再生状態を取得
bool isGamePlaying = NoaController.IsGamePlaying;
// ツールで設定したゲーム速度を取得
float gameSpeed = NoaController.GameSpeed;
// アプリケーションの初回シーンに遷移する
NoaController.ResetApplication();
// アプリケーションリセット時に実行したいコールバックを設定する
NoaController.OnApplicationReset = () =>
{
Debug.Log("Application reset");
// アプリケーションリセット時に処理を追加する場合はtrueを返す
// アプリケーションリセット処理を上書きする場合はfalseを返す
return true;
};
// NOA Debugger関連UIの表示・非表示を切り替える
NoaController.ToggleNoaDebuggerUI();
// NOA Debugger関連UIの表示・非表示を切り替える時のコールバックを設定する
NoaController.OnToggleNoaDebuggerUI = isShow =>
{
Debug.Log($"Toggle the NOA Debugger UI: {isShow}");
// 表示・非表示の切り替えを行う場合はtrueを、キャンセルする場合はfalseを返す
return true;
};
// スクリーンショット撮影前のコールバックを設定する
// - 返り値で指定するフラグの組み合わせによって撮影対象を指定します。
// - スクリーンショットに全てのNOA Debugger関連UIを含める場合はNoaController.ScreenshotTarget.Allを返します。
NoaController.OnBeforeScreenshot = () =>
{
Debug.Log("Before capturing a screenshot");
return NoaController.ScreenshotTarget.LaunchButton | NoaController.ScreenshotTarget.UIElement;
};
// スクリーンショット撮影時のコールバックを設定する
NoaController.OnCaptureScreenshot = () =>
{
Debug.Log("Capturing a screenshot");
// 撮影する場合はtrueを、撮影処理を独自に行う場合など内部の撮影処理を行わない場合はfalseを返す
// falseを返した場合、NoaController.GetCapturedScreenshot()はnullを返します。
return true;
};
// スクリーンショット撮影後のコールバックを設定する
NoaController.OnAfterScreenshot = () =>
{
byte[] data = NoaController.GetCapturedScreenshot();
if (data != null)
{
// 画像データをファイルに保存する例
string filePath = Application.persistentDataPath + "/screenshot.png";
System.IO.File.WriteAllBytes(filePath, data);
Debug.Log($"Screenshot saved to: {filePath}");
// 撮影したスクリーンショット画像をクリア
NoaController.ClearCapturedScreenshot();
}
else
{
Debug.LogError("No screenshot data.");
}
};
// スクリーンショットを撮影
NoaController.CaptureScreenshot();
#endif
}
}