【Unity】【エディタ拡張】エディタウィンドウ上に通知メッセージを表示する

Unityのエディタ拡張でエディタウィンドウ上に通知メッセージを表示する方法です。

Unity2020.1.17

はじめに

Unityのエディタウィンドウには通知メッセージを表示するための機能があります。

通知

本記事ではこの機能の使い方についてまとめます。

使い方と仕様

使い方は簡単で、 EditorWindow.ShowNotification()を呼ぶだけです。
第一引数にメッセージを、第二引数(オプション)に表示する秒数を入力します。

docs.unity3d.com

メッセージが消える前に複数回呼んだ場合には最後のメッセージだけが表示されます。
また強制的にメッセージを消すにはEditorWindow.RemoveNotification()を呼びます。

サンプルコードと動作例

サンプルコードは以下の通りです。

using UnityEditor;
using UnityEngine;

public sealed class ExampleNotificationWindow : EditorWindow
{
    private const float FadeoutWait = 10.5f;
    private int _showCount;

    private void OnGUI()
    {
        if (GUILayout.Button("Show Notification"))
        {
            ShowNotification(new GUIContent($"Notification {_showCount}"), FadeoutWait);
            _showCount++;
        }

        if (GUILayout.Button("Remove Notification"))
            RemoveNotification();
    }

    [MenuItem("Window/ExampleWindow")]
    private static void Window()
    {
        var window = GetWindow<ExampleNotificationWindow>();
        window.Show();
    }
}

このウィンドウを表示すると以下のような結果が得られます。

動作

参考

docs.unity3d.com