/// <summary> /// Create the runtime lists of nodes. /// </summary> void CreateRuntimeListsOfNodes () { // iterator int i; // OnEnable Nodes var onEnableList = new List<ActionNode>(); for (i = 0; i < m_Nodes.Length; i++) { if (!(m_Nodes[i] is Update)) onEnableList.Add(m_Nodes[i]); else break; } if (onEnableList.Count > 0) { m_OnEnable = ActionNode.CreateInstance(typeof(OnEnable), gameObject, this) as OnEnable; m_OnEnable.SetChildren(onEnableList.ToArray()); } else m_OnEnable = null; // Update Nodes var updateList = new List<ActionNode>(); // FixedUpdate Nodes var fixedUpdateList = new List<ActionNode>(); // GUI Nodes var onGuiList = new List<ActionNode>(); for (int j = i + 1; j < m_Nodes.Length; j++) { // OnGUI if (m_Nodes[j] is IGUINode) { onGuiList.Add(m_Nodes[j]); } // FixedUpdate else if (m_Nodes[j] is IFixedUpdateNode) { fixedUpdateList.Add(m_Nodes[j]); } // Update else { updateList.Add(m_Nodes[j]); } } // FixedUpdate if (fixedUpdateList.Count > 0) { m_FixedUpdate = ActionNode.CreateInstance(typeof(FixedUpdate), gameObject, this) as FixedUpdate; // Call Reset if it's not in editor if (!Application.isEditor) m_FixedUpdate.Reset(); m_FixedUpdate.SetChildren(fixedUpdateList.ToArray()); } else m_FixedUpdate = null; // Update if (updateList.Count > 0) { m_Update = ActionNode.CreateInstance(typeof(Update), gameObject, this) as Update; // Call Reset if it's not in editor if (!Application.isEditor) m_Update.Reset(); m_Update.SetChildren(updateList.ToArray()); } else m_Update = null; // OnGUI if (onGuiList.Count > 0) { m_OnGUI = ActionNode.CreateInstance(typeof(OnGUI), gameObject, this) as OnGUI; // Call Reset if it's not in editor if (!Application.isEditor) m_OnGUI.Reset(); m_OnGUI.SetChildren(onGuiList.ToArray()); } else m_OnGUI = null; }
/// <summary> /// Create the runtime lists of nodes. /// </summary> void CreateRuntimeListsOfNodes() { // iterator int i; // OnEnable Nodes var onEnableList = new List <ActionNode>(); for (i = 0; i < m_Nodes.Length; i++) { if (!(m_Nodes[i] is Update)) { onEnableList.Add(m_Nodes[i]); } else { break; } } if (onEnableList.Count > 0) { m_OnEnable = ActionNode.CreateInstance(typeof(OnEnable), gameObject, this) as OnEnable; m_OnEnable.SetChildren(onEnableList.ToArray()); } else { m_OnEnable = null; } // Update Nodes var updateList = new List <ActionNode>(); // FixedUpdate Nodes var fixedUpdateList = new List <ActionNode>(); // GUI Nodes var onGuiList = new List <ActionNode>(); for (int j = i + 1; j < m_Nodes.Length; j++) { // OnGUI if (m_Nodes[j] is IGUINode) { onGuiList.Add(m_Nodes[j]); } // FixedUpdate else if (m_Nodes[j] is IFixedUpdateNode) { fixedUpdateList.Add(m_Nodes[j]); } // Update else { updateList.Add(m_Nodes[j]); } } // FixedUpdate if (fixedUpdateList.Count > 0) { m_FixedUpdate = ActionNode.CreateInstance(typeof(FixedUpdate), gameObject, this) as FixedUpdate; // Call Reset if it's not in editor if (!Application.isEditor) { m_FixedUpdate.Reset(); } m_FixedUpdate.SetChildren(fixedUpdateList.ToArray()); } else { m_FixedUpdate = null; } // Update if (updateList.Count > 0) { m_Update = ActionNode.CreateInstance(typeof(Update), gameObject, this) as Update; // Call Reset if it's not in editor if (!Application.isEditor) { m_Update.Reset(); } m_Update.SetChildren(updateList.ToArray()); } else { m_Update = null; } // OnGUI if (onGuiList.Count > 0) { m_OnGUI = ActionNode.CreateInstance(typeof(OnGUI), gameObject, this) as OnGUI; // Call Reset if it's not in editor if (!Application.isEditor) { m_OnGUI.Reset(); } m_OnGUI.SetChildren(onGuiList.ToArray()); } else { m_OnGUI = null; } }