Exemplo n.º 1
0
        /// <summary>
        /// 流程组件初始化
        /// </summary>
        protected override void Awake()
        {
            base.Awake();

            m_ProcedureMethods = CentorPivot.This.GetComponent <ProcedureComponent>();
            if (m_ProcedureMethods == null)
            {
                Log.Fatal("Procedure manager is invalid.");
                return;
            }

            System.Collections.Generic.HashSet <Type> m_Procedures = Utility.Assembly.GetTypes(typeof(ProcedureClassAttribute));
            int _AvailableLength = m_Procedures.Count;
            int _AvailableIndex  = 0;

            ProcedureState[] procedures = new ProcedureState[_AvailableLength];
            m_ProcedureTypeNames = new string[_AvailableLength];

            System.Collections.Generic.IEnumerator <Type> iter = m_Procedures.GetEnumerator();
            while (iter.MoveNext())
            {
                //Log.Info(iter.Current.FullName);
                object obj = Activator.CreateInstance(iter.Current);
                procedures[_AvailableIndex] = (ProcedureState)obj;
                if (procedures[_AvailableIndex] == null)
                {
                    Log.Error("Can not create procedure instance '{0}'.", iter.Current.FullName);
                }

                m_ProcedureTypeNames[_AvailableIndex] = iter.Current.FullName;
                _AvailableIndex += 1;
            }

            m_ProcedureMethods.Initialize(CentorPivot.This.GetComponent <FsmComponent>(), procedures);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 切换状态
        /// </summary>
        /// <param name="state"></param>
        public void ChangeState(ProcedureState state)
        {
            if (m_CurrFsm == null)
            {
                Debug.LogError("m_CurrFsm == null");
                return;
            }

            m_CurrFsm.ChangeState((byte)state);
        }
Exemplo n.º 3
0
 public void ChangeState(ProcedureState state)
 {
     m_ProcedureManager.ChangeState(state);
 }
Exemplo n.º 4
0
 /// <summary>
 /// 切换状态
 /// </summary>
 /// <param name="state"></param>
 public void ChangeState(ProcedureState state)
 {
     m_CurrFsm.ChangeState((byte)state);
 }