public int createEffect(int effId, EffectInfo info) { EffectConfigConfig config = EffectConfigConfig.Get(effId); int uid = -1; if (config != null) { uid = MathUtils.get32UID(); info.config = config; GameObject cacheGo = PoolMgr.Instance.getObj(config.tempId + config.path); if (cacheGo == null) { ResMgr.Instance.load(effectPathPre + config.path, (obj) => { GameObject go = obj as GameObject; BaseEffect be = go.AddComponent(getType((EffectType)config.effectType)) as BaseEffect; be.id = uid; be.setInfo(info); if (!createdEff.ContainsKey(uid)) { createdEff.Add(uid, be); } }); } else { BaseEffect be = cacheGo.GetComponent <BaseEffect>(); if (be != null) { be.setInfo(info); cacheGo.SetActive(true); uid = be.id; } } } return(uid); }