Exemple #1
0
 public void RemoveFunction(GuidNewFunctionBase func)
 {
     if (m_cacheFunction.Contains(func))
     {
         m_cacheFunction.Remove(func);
     }
 }
Exemple #2
0
        private void CreateChildFunc()
        {
            ConfGuidNewFunction confGuidFunc = ConfGuidNewFunction.Get(this.m_funcID);

            if (confGuidFunc == null || confGuidFunc.nextFuncID == null)
            {
                return;
            }
            for (int i = 0; i < confGuidFunc.nextFuncID.Length; i++)
            {
                GuidNewFunctionBase funcBase = GuidNewFunctionFactory.Instance.CreateFunctionById(confGuidFunc.nextFuncID[i]);
                funcBase.SetGuidBase(m_guidBase);
                //funcBase.OnRun();
                childFunc.Add(funcBase);
                //  ConfGuidNewFunction.Get(confGuidFunc.nextFuncID[i]);
            }
        }
        //创建函数
        public GuidNewFunctionBase CreateFunctionById(long funcId)
        {
            ConfGuidNewFunction confFunc = ConfGuidNewFunction.Get(funcId);

            if (confFunc == null)
            {
                Debug.LogError("funcId error " + funcId);
                return(null);
            }
            if (!funcTypes.ContainsKey(confFunc.funcName))
            {
                Debug.LogError("funcName error " + confFunc.funcName);
                return(null);
            }
            Type guidType = funcTypes[confFunc.funcName];
            GuidNewFunctionBase baseGuid = Activator.CreateInstance(guidType) as GuidNewFunctionBase;

            if (baseGuid == null)
            {
                Debug.LogError("func eror : " + funcId);
            }
            baseGuid.OnInit(funcId, confFunc.funcParams);
            return(baseGuid);
        }
        public void SetGuidID(long currentID)
        {
            this.m_currentID = currentID;
            m_currentConf    = ConfGuidNew.Get(m_currentID);
            int preFuncCount = 0;

            if (m_currentConf.preFuncId != null)
            {
                preFuncCount = m_currentConf.preFuncId.Length;
            }
            if (m_currentConf.initFuncIds != null)
            {
                int initFuncCount = m_currentConf.initFuncIds.Length;
                for (int i = 0; i < initFuncCount; i++)
                {
                    GuidNewFunctionBase initFunc = GuidNewFunctionFactory.Instance.CreateFunctionById(m_currentConf.initFuncIds[i]);
                    initFunc.SetGuidBase(this);
                    initFunc.OnRun();
                }
            }

            m_preFunc = new GuidNewPreFunctionBase[preFuncCount];
            for (int i = 0; i < preFuncCount; i++)
            {
                m_preFunc[i] = GuidNewFunctionFactory.Instance.CreatePreFunctionById(m_currentConf.preFuncId[i]);
            }

            int executeFuncCount = m_currentConf.funcIds.Length;

            m_func = new GuidNewFunctionBase[executeFuncCount];
            for (int i = 0; i < executeFuncCount; i++)
            {
                m_func[i] = GuidNewFunctionFactory.Instance.CreateFunctionById(m_currentConf.funcIds[i]);
                m_func[i].SetGuidBase(this);
            }
        }
Exemple #5
0
 public void PushFunction(GuidNewFunctionBase func)
 {
     m_cacheFunction.Add(func);
 }