NOA DebuggerNOA Debugger
  • v1.7.0
  • v1.6.1
  • v1.5.0
  • v1.4.0
  • v1.3.0
  • v1.2.0
  • v1.1.1
  • v1.0.0
Demo
Contact
Buy
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • v1.7.0
  • v1.6.1
  • v1.5.0
  • v1.4.0
  • v1.3.0
  • v1.2.0
  • v1.1.1
  • v1.0.0
Demo
Contact
Buy
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • NoaScreenshotCallbacks

NoaScreenshotCallbacks

スクリーンショット機能に関連するイベントを設定します。

NoaScreenshotCallbacksを継承したクラスをNoaControllerに引き渡すことで、スクリーンショット機能に関連するイベントをカスタマイズできます。

オーバーライド可能な要素

Methods

メソッド名説明
OnBeforePrepareScreenshot()後述のScreenshotTargetに応じてNOA DebuggerのUIの表示制御を行う前に実行するメソッドです。
ここでScreenshotTargetを変更することで、不要なNOA DebuggerのUIを非表示にした状態でOnCaptureScreenshotを実行します。
OnCaptureScreenshot()NOA Debuggerのスクリーンショット処理の直前に実行するメソッドです。
OnAfterScreenshot()スクリーンショット処理の後に実行するメソッドです。
NOA Debuggerのスクリーンショット処理を実行しなかった場合でもこのメソッドは実行します。

Properties

プロパティ名説明
IsAllowBaseScreenshotNOA Debuggerのスクリーンショット処理を実行するかを判断します。
デフォルトはtrueで、falseに変更した場合はスクリーンショット処理を実行しません。
ScreenshotTargetスクリーンショット撮影時に表示状態を維持するNOA DebuggerのUIを指定します。
デフォルトはNoneで、全てのNOA DebuggerUIを非表示にして撮影します。

関連する型

INoaScreenshotCallbacks

NoaScreenshotCallbacksのオーバーライド可能なメソッドとプロパティは、このインターフェースで定義しています。

カスタムクラスで複数のコールバックの定義を集約したい場合や、既存のカスタムクラスを継承しつつコールバック機能を追加したい場合は、NoaScreenshotCallbacksクラスの代わりにこのインターフェースを利用することで実現できます。

NoaController.ScreenshotTarget

NoaScreenshotCallbacksのプロパティで使用する、スクリーンショット撮影対象を指定するFlags属性付きの列挙型です。
撮影対象に含まなかったNOA Debugger関連UIを非表示にした状態でスクリーンショットを撮影します。

要素名説明
None全てのNOA Debugger関連UIを非表示にした状態で撮影します。
※他のフラグが優先的に扱われるため、Noneは単体で使用してください。
LaunchButton起動ボタンを撮影対象に含めます。
FloatingWindows専用ウィンドウを撮影対象に含めます。
UIElementUIElementを撮影対象に含めます。
MainViewメインビューを撮影対象に含めます。
Overlaysオーバーレイを撮影対象に含めます。
All全てのNOA Debugger関連UIを撮影対象に含めます。

サンプルコード

#if NOA_DEBUGGER
using NoaDebugger;
using UnityEngine;

// NOA Debuggerのスクリーンショット処理前後にイベントを実行する場合の例
public class ExampleScreenshotManager : NoaScreenshotCallbacks
{
    NoaController.ScreenshotTarget target;
    public override NoaController.ScreenshotTarget ScreenshotTarget => target;

    public override void OnBeforePrepareScreenshot()
    {
        // 滞在中のシーンによってスクリーンショット撮影時にNOA DebuggerのUIを含むかどうかを変更する例
        if (ExampleSceneManager.Instance.CurrentScene == SceneType.Battle)
        {
            target = NoaController.ScreenshotTarget.UIElement | NoaController.ScreenshotTarget.Overlays;
        }
        else
        {
            target = NoaController.ScreenshotTarget.None;
        }
    }

    public override void 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.");
        }
    }
}

// NOA Debuggerのスクリーンショット処理を実行せず、独自の処理を実行する場合の例
public class ExampleOriginalScreenshotManager : NoaScreenshotCallbacks
{
    // IsAllowBaseScreenshotをfalseに設定することでNOA Debuggerのスクリーンショット処理を拒否
    public override bool IsAllowBaseScreenshot => false;

    // 規定の準備処理は発火しているため、NOA DebuggerのUIを非表示にした状態で独自の撮影処理を実行できます
    public override void OnCaptureScreenshot()
    {
        ScreenCapture.CaptureScreenshot("screenshot.png");
    }
}
#endif

リンク集

関連機能

  • ツールの起動方法

使用クラス

  • NoaController