版本: Unity 6 (6000.0)
语言英语
  • C#

EditorGUIUtility.CommandEvent

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每个建议更改,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static Event CommandEvent(string commandName);

参数

commandName 要发送的命令。

描述

创建一个可以发送到另一个窗口的事件。

// 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); } } }

以下脚本接收从 CommandEventExample 发送的粘贴消息。

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; } } } }