Version: 2019.2
public static Event CommandEvent (string commandName);

Parameters

commandNameThe command to be sent.

Description

Creates an event that can be sent to another window.

// Sends a paste event to an EditorWindow, as if Paste
// was selected from the Edit menu.

using UnityEngine; using UnityEditor;

public class CommandEventExample : EditorWindow { [MenuItem("Examples/CommandEvent example")] static void commandEventExample() { CommandEventExample window = EditorWindow.GetWindowWithRect<CommandEventExample>(new Rect(0, 0, 150, 40)); window.Show(); }

void OnGUI() { if (GUILayout.Button("Paste")) { Event e = EditorGUIUtility.CommandEvent("Paste"); EditorWindow ew = EditorWindow.GetWindow<CommandEventTest>(true); ew.SendEvent(e); } } }

The script below receives the Paste message sent from CommandEventExample above.

using UnityEngine;
using UnityEditor;

public class CommandEventTest : EditorWindow { private int eventCount = 0;

[MenuItem("Examples/Example that receives a paste event")] static void test() { CommandEventTest window = EditorWindow.GetWindowWithRect<CommandEventTest>(new Rect(0, 0, 100, 40)); window.Show(); }

void OnGUI() { EditorGUI.LabelField(new Rect(10, 10, 90, 30), "Paste: " + eventCount.ToString());

if (Event.current.type == EventType.ExecuteCommand) { Event e = Event.current; if (e.commandName == "Paste") { eventCount = eventCount + 1; } } } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961