1
0
mirror of https://github.com/Siccity/xNode.git synced 2026-02-06 07:14:56 +08:00

UPGRADE NOTICE: Removed Init. Use OnEnable instead

OnEnable is a built-in event in Unity, and as such you don't need to override anything.
Simply replace 'protected override void Init()' with 'private void OnEnable()'.
You can use any access modifier.
This commit is contained in:
Thor Brigsted 2019-05-07 17:02:25 +02:00
parent d7f5bd2a1a
commit 9e7e7c4c9b
3 changed files with 22 additions and 9 deletions

View File

@ -34,6 +34,25 @@ namespace XNodeEditor {
}
private Func<bool> _isDocked;
/// <summary>
/// This method is called automatically on script reload, and ensures that
/// all static ports in all nodes match their Node's class' port attributes
/// </summary>
[InitializeOnLoadMethod]
private static void UpdateAllStaticNodePorts() {
// Find all Graphs in the project
string[] guids = AssetDatabase.FindAssets("t:" + typeof(XNode.NodeGraph).Name);
for (int i = 0; i < guids.Length; i++) {
string assetpath = AssetDatabase.GUIDToAssetPath(guids[i]);
UnityEngine.Object[] objs = AssetDatabase.LoadAllAssetRepresentationsAtPath(assetpath);
// Loop through graph asset and search for nodes (nodes exist inside the graph asset as sub-assets)
for (int k = 0; k < objs.Length; k++) {
XNode.Node node = objs[k] as XNode.Node;
if (node != null) node.UpdateStaticPorts();
}
}
}
public static Type[] GetNodeTypes() {
//Get all classes deriving from Node via reflection
return GetDerivedTypes(typeof(XNode.Node));

View File

@ -5,9 +5,8 @@ using XNode;
public class #SCRIPTNAME# : Node {
// Use this for initialization
protected override void Init() {
base.Init();
// Use OnEnable for initialization
private void OnEnable() {
#NOTRIM#
}

View File

@ -114,11 +114,9 @@ namespace XNode {
/// <summary> Used during node instantiation to fix null/misconfigured graph during OnEnable/Init. Set it before instantiating a node. Will automatically be unset during OnEnable </summary>
public static NodeGraph graphHotfix;
protected void OnEnable() {
private void Awake() {
if (graphHotfix != null) graph = graphHotfix;
graphHotfix = null;
UpdateStaticPorts();
Init();
}
/// <summary> Update static ports to reflect class fields. This happens automatically on enable. </summary>
@ -126,9 +124,6 @@ namespace XNode {
NodeDataCache.UpdatePorts(this, ports);
}
/// <summary> Initialize node. Called on enable. </summary>
protected virtual void Init() { }
/// <summary> Checks all connections for invalid references, and removes them. </summary>
public void VerifyConnections() {
foreach (NodePort port in Ports) port.VerifyConnections();