public void DestroyEffect(int effectId) { SkillEffectBase effectBase = null; if (mEffectDic.TryGetValue(effectId, out effectBase)) { effectBase.Destroy(); mEffectDic.Remove(effectId); } }
int CreateEffect(CampType casterCampType, IntVector2 effectPos, short effectId, int targetUnitId, short effectAngler, short param1, short param2) { UnityEngine.Debug.Log("創建技能效果 " + casterCampType.ToString() + " " + effectPos.ToString() + " " + effectAngler + " " + param1 + " " + param2); GDSKit.SkillEffect effectConfig = GDSKit.SkillEffect.GetInstance(effectId); SkillEffectBase createEffect = null; switch ((SkillEffectType)effectConfig.type) { case SkillEffectType.ChgAttr: createEffect = new SkillAttrChgEffect(); break; default: throw new System.NotImplementedException("未实现的技能效果类型 " + effectConfig.type); } mEffectDic[createEffect.iD] = createEffect; createEffect.SetInfo(effectConfig, effectPos, targetUnitId, effectAngler, param1, param2, casterCampType); createEffect.BeginWork(); BattleFiled.Instance.OnCreateEffect(effectId, effectPos); return(createEffect.iD); }