public AddEffectData(GameObject parentObj, Tab_Effect effectData, PlayEffectDelegate delPlayEffect, object param) { _parentObj = parentObj; _effectData = effectData; _delPlayEffect = delPlayEffect; _param = param; }
public void PlayEffect(int effectID, PlayEffectDelegate delPalyEffect = null, object param = null) { if (m_objEffectController) { m_objEffectController.PlayEffect(effectID, delPalyEffect, param); } }
protected override void LoadEffect(Tab_Effect effectData, PlayEffectDelegate delPlayEffect, object param) { if (effectData == null) { return; } if (m_effectBindPointCache == null) { return; } GameObject effectParentObj = null; if (m_effectBindPointCache.ContainsKey(effectData.ParentName) && m_effectBindPointCache[effectData.ParentName] != null) { effectParentObj = m_effectBindPointCache[effectData.ParentName]; } if (effectParentObj != null) { AddEffect(effectParentObj, effectData, delPlayEffect, param); } else { if (m_BaseEffectBindPoint != null) { AddEffect(m_BaseEffectBindPoint.gameObject, effectData, delPlayEffect, param); } else { LogModule.ErrorLog("find bind point failed!, id {0} bindPoint {1}", effectData.EffectID, effectData.ParentName); } } }
public void PlaySceneEffect(int effectID, PlayEffectDelegate delPlayEffect = null, object param = null) { gameObject.SetActive(true); if (m_SceneEffecLogic) { m_SceneEffecLogic.PlayEffect(effectID, delPlayEffect, param); } }
//目前UI特效直接挂在指定gameobj上面 protected override void LoadEffect(Tab_Effect effectData, PlayEffectDelegate delPlayEffect, object param) { if (effectData == null) { return; } if (m_EffectGameObj != null) { AddEffect(m_EffectGameObj, effectData, delPlayEffect, param); } }
protected override void LoadEffect(Tab_Effect effectData, PlayEffectDelegate delPlayEffect, object param) { if (effectData == null) { return; } if (m_BaseEffectBindPoint != null) { AddEffect(m_BaseEffectBindPoint.gameObject, effectData, delPlayEffect, param); } }
public void PlayEffect(int effectID, PlayEffectDelegate delPlayEffect = null, object param = null) { if (!m_hasInited) { } Tab_Effect EffectInfo = TableManager.GetEffectByID(effectID, 0); if (EffectInfo == null) { if (null != delPlayEffect) { delPlayEffect(null, param); } return; } if (!DoPlayEffectWhenModelInvisible && !EffectHolderVisible && EffectInfo.Duration > 0) { return; } //设置了 取消技能特效 且满足条件 if (EffectInfo.IsCanHide && !PlayerPreferenceData.SystemSkillEffectEnable) //&& IsCanHideEffectObj) 这个 永远 返回 false .... { return; } ///特效持有者对象为空时 不处理 回调null if (m_EffectGameObj == null) { LogModule.WarningLog("effect can not play before init"); if (null != delPlayEffect) { delPlayEffect(null, param); } return; } //加个数量限制 //如果表格配置为-1则不限制,此时不用判断数量 if (EffectInfo.MaxOwnNum >= 0 && GetEffectCountById(effectID) >= EffectInfo.MaxOwnNum) { return; } LoadEffect(EffectInfo, delPlayEffect, param); // 高能预警!!高能预警!!高能预警!!高能预警!!高能预警!!高能预警!!高能预警!!高能预警!! // 要开始挖坑了!!! 坑////////坑////////坑////////坑////////坑////////坑///// // 高能预警!!高能预警!!高能预警!!高能预警!!高能预警!!高能预警!!高能预警!!高能预警!! // if (GlobeVar.PLAYERLEVELUPEFFECTID == effectID) // { // UIManager.HideAllUIWhenLevelUp(); // } }
/// <summary> /// /// </summary> /// <param name="parentObj"></param> /// <param name="effectData"></param> /// <param name="delPlayEffect"></param> /// <param name="param"></param> protected void AddEffect(GameObject parentObj, Tab_Effect effectData, PlayEffectDelegate delPlayEffect, object param) { if (null == effectData) { LogModule.ErrorLog("effectData is null"); if (null != delPlayEffect) { delPlayEffect(null, param); } return; } ChangeMaterialColor(effectData.Type); //已经存在 数量加1 if (m_EffectCountCache.ContainsKey(effectData.EffectID)) { m_EffectCountCache[effectData.EffectID] = m_EffectCountCache[effectData.EffectID] + 1; } //不存在 添加进去 数量为1 else { m_EffectCountCache.Add(effectData.EffectID, 1); } if (effectData.IsOnlyDeactive && m_dicEffectCache.ContainsKey(effectData.EffectID) && m_dicEffectCache[effectData.EffectID].Count > 0) { FXController curFXController = m_dicEffectCache[effectData.EffectID][0]; m_dicEffectCache[effectData.EffectID].RemoveAt(0); if (curFXController) { //区域特效单独处理 if (effectData.Type == (int)EEffectChangeType.TYPE_TARGETAREA) { Games.SkillModle.SkillCore.SkillTargetData targetData = param as Games.SkillModle.SkillCore.SkillTargetData; if (targetData != null) { if (targetData._hasSet) { curFXController.ChangePositionForAreaEffect(GetTargetAreaPos(targetData, curFXController.GetPosition())); } else { curFXController.ResetAreaEffect(); } } } curFXController.Play(this); } if (null != delPlayEffect) { delPlayEffect(curFXController.m_FirstChild, param); } return; } AddEffectData curData = new AddEffectData(parentObj, effectData, delPlayEffect, param); m_NeedPlayEffectIdCacheList.Add(effectData.EffectID); //凑活的方式 如果 该粒子没有在 GameObject resObj = ResourceManager.LoadResource(effectData.Path) as GameObject; if (null != resObj) { LoadEffectComplete(new LoadedObjData() { LoadedObj = resObj }, curData); return; } BundleManager.LoadEffectInQueue(effectData.EffectID, LoadEffectComplete, curData); }
protected abstract void LoadEffect(Tab_Effect effectData, PlayEffectDelegate delPlayEffect, object param);