用于打开 Unity 中某个资源的回调属性(例如,双击 Project Browser 中的某个资源时会触发回调)。
将此属性添加至某个静态方法后,系统会在 Unity 即将打开资源时调用该方法。该方法应有以下签名之一:
static bool OnOpenAsset(int instanceID, int line)
static bool OnOpenAsset(int instanceID, int line, int column)
如果处理了资源打开操作,则返回 true,如果资源应该由外部工具打开,则返回 false。
// C# example: using UnityEngine; using UnityEditor; using UnityEditor.Callbacks;
public class MyAssetHandler { [OnOpenAssetAttribute(1)] public static bool step1(int instanceID, int line) { string name = EditorUtility.InstanceIDToObject(instanceID).name; Debug.Log("Open Asset step: 1 (" + name + ")"); return false; // we did not handle the open }
// step2 has an attribute with index 2, so will be called after step1 [OnOpenAssetAttribute(2)] public static bool step2(int instanceID, int line) { Debug.Log("Open Asset step: 2 (" + instanceID + ")"); return false; // we did not handle the open } }
OnOpenAssetAttribute 具有提供回调中的顺序索引的选项,从 0 开始。如果您有多个 OnOpenAssetAttribute 回调并想以特定顺序调用它们,此选项将非常有用。系统将从零开始按顺序调用回调。