Exemple #1
0
        protected override void OnDestroy()
        {
            base.OnDestroy();

            foreach (var state in _stateInstances)
            {
                state.Value.OnTermination();
            }
            _stateInstances.Clear();

            if (CurrentData != null)
            {
                CurrentData.OnTermination();
            }

            if (_isAutomate && _isSupportedDataDriver)
            {
                AutomaticTask.ClearDataBinding(CurrentData);
            }

            if (Main.m_FSM.IsExistFSM(Name))
            {
                Main.m_FSM.UnRegisterFSM(this);
            }
        }
Exemple #2
0
 protected virtual void OnDestroy()
 {
     if (IsAutomate && IsSupportedDataDriver)
     {
         AutomaticTask.ClearDataBinding(this);
     }
 }
Exemple #3
0
        /// <summary>
        /// 进行自动化任务(状态)
        /// </summary>
        private void DoAutomaticTaskOfState(Type type, FiniteStateBase finiteState)
        {
            if (_isAutomate)
            {
                FieldInfo[] fieldInfos = AutomaticTask.GetAutomaticFields(type);
                AutomaticTask.ApplyObjectPath(finiteState, fieldInfos);

                if (_isSupportedDataDriver)
                {
                    AutomaticTask.ApplyDataBinding(finiteState, fieldInfos);
                }
            }
        }
Exemple #4
0
        /// <summary>
        /// 进行自动化任务(数据)
        /// </summary>
        private void DoAutomaticTaskOfData(FSMDataBase fsmData)
        {
            if (_isAutomate)
            {
                FieldInfo[] fieldInfos = AutomaticTask.GetAutomaticFields(fsmData.GetType());
                AutomaticTask.ApplyObjectPath(fsmData, fieldInfos);

                if (_isSupportedDataDriver)
                {
                    AutomaticTask.ApplyDataBinding(fsmData, fieldInfos);
                }
            }
        }
        /// <summary>
        /// 初始化
        /// </summary>
        public virtual void OnInit()
        {
            if (IsAutomate)
            {
                FieldInfo[] fieldInfos = AutomaticTask.GetAutomaticFields(GetType());
                AutomaticTask.ApplyObjectPath(this, fieldInfos);

                if (IsSupportedDataDriver)
                {
                    AutomaticTask.ApplyDataBinding(this, fieldInfos);
                }
            }
        }
Exemple #6
0
        protected virtual void Awake()
        {
            useGUILayout = false;

            if (IsAutomate)
            {
                FieldInfo[] fieldInfos = AutomaticTask.GetAutomaticFields(GetType());
                AutomaticTask.ApplyObjectPath(this, fieldInfos);

                if (IsSupportedDataDriver)
                {
                    AutomaticTask.ApplyDataBinding(this, fieldInfos);
                }
            }
        }