//============= Copyright (c) Ludic GmbH, All rights reserved. ============== // // Purpose: Part of the My Behaviour Tree Code // //============================================================================= using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; namespace MyBT { #if UNITY_EDITOR using UnityEditor; [CustomEditor(typeof(TaskController))] public class SingleTonTaskControllerInspector : Editor { public void OnEnable() { SingletonTaskController singletonTaskController = (SingletonTaskController)target; Debug.Log($"Destorying SingletonTaskController, its not needed anymore {singletonTaskController.gameObject.GetComponents()}"); //DestroyImmediate(singletonTaskController.gameObject); } } #endif // remembers the last active TaskController, so a task can access it directly without a reference to the TaskController [System.Serializable, ExecuteInEditMode] public class SingletonTaskController : MonoBehaviour { public void OnEnable() { DestroyImmediate(this.gameObject); } //static SingletonTaskController _instance = null; //public static SingletonTaskController Instance { // get { // //if (_instance != null) { // // return _instance; // //} // if (_instance == null) { // _instance = Resources.FindObjectsOfTypeAll().FirstOrDefault(); // if (_instance == null) { // _instance = new GameObject("TaskController", typeof(SingletonTaskController)).GetComponent(); // } // } // return _instance; // } //} //[SerializeField] //public TaskController _current; //public TaskController current { // set { // // if (value != null) { // // Debug.Log($"TaskController.current: Set {value.GetInstanceID()}"); // // } // _current = value; // } // get { // return _current; // } //} //public List history = new List(); //public bool taskHasChanges = false; ////[SerializeField] //public ActionNode currentNode; ////[SerializeField] //public ActionNodeRuntimeData currentNodeRuntimeData; //public int currentIndex; } }