Callback attribute for opening an asset in Unity (e.g the callback is fired when double clicking an asset in the Project Browser).
Adding this attribute to a static method will make the method be called when Unity is about to open an asset. The method should have the following signature:
static bool OnOpenAsset(int instanceID, int line)
Return true if you handled the opening of the asset or false if an external tool should open it.
no example available in JavaScript
// 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 has an option to provide an order index in the callback. This lets you change the order in which the callback is invoked. (Builtin callbacks always have a value of 0).