handler | 处理相应窗口上放置操作的函数。 |
允许覆盖相应窗口的默认行为。可以在同一个窗口上注册多个处理程序。如果处理程序返回 DragAndDropVisualMode.None,系统将检查下一个处理程序。任何其他结果(DragAndDropVisualMode.Rejected 或其他 DragAndDropVisualMode)表示此处理程序已处理放置事件,并且不会调用其他处理程序。最后一个处理程序是 Unity 的默认处理程序。
using UnityEditor; using UnityEngine; using System;
static class DragDropSample { static DragAndDropVisualMode ProjectHandler(int id, string path, bool perform) { if (perform) Debug.Log($"Dropped upon {path} {id}"); else Debug.Log($"Dragging upon {path} {id}"); return DragAndDropVisualMode.Move; }
public static void AddDragProjectHandler() { // Add the handler DragAndDrop.AddDropHandler(ProjectHandler); }
public static void RemoveProjectHandler() { // Remove the handler DragAndDrop.RemoveDropHandler(ProjectHandler); } }