public override void OnInspectorGUI()
        {
            DrawDefaultInspector();

            manager = (TasksManager)target;


            EditorGUILayout.LabelField("Game Tasks Status");

            // Body drawing
            foreach (Task task in manager.GetAllTasks())
            {
                ScanTask(task, ref deph);
            }

            deph = 0;
        }
        [SerializeField] private List <Task> failedTasks;            // tasks completed in FAILURE


        #region ENGINE METHODS

        private void Awake()
        {
            #region (Singleton Pattern)
            DontDestroyOnLoad(this);
            // Si _instancia tiene una referencia que no somos nosotros nos destruimos
            if (_instance != null && _instance != this)
            {
                Destroy(this);
            }
            else
            {
                _instance = this;
            }
            #endregion

            tasksBlackboard = GetComponent <TasksBlacboard>();

            // null checks
            if (tasksCanvasController == null)
            {
                Debug.LogError("TASKS_MANAGER_NULL: tasksCanvasController");
            }
            if (tasksBlackboard == null)
            {
                Debug.LogError("TASKS_MANAGER_NULL: No blackboard found");
            }


            // Performance setup
            timeForCheck = ((1.0000f / (float)tickPerSecond) * 0.6000f);     // ticks per second caching

            // initializations
            activeTasks   = new List <Task>();
            achievedTasks = new List <Task>();
            failedTasks   = new List <Task>();

            TasksSetup();
        }