public void RemoveFunction(GuidNewFunctionBase func) { if (m_cacheFunction.Contains(func)) { m_cacheFunction.Remove(func); } }
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); } }
public void PushFunction(GuidNewFunctionBase func) { m_cacheFunction.Add(func); }