//创建Main相机跟随特效 public void CreateMainFollowEffect(string effectId, GameObject target, Vector3 offset, bool autoDestroy = true, Effect.EffectCallback playedCallBack = null, Effect.EffectCreateCallback createdCallBack = null, bool needCache = true) { string url = UrlUtils.GetMainEffectUrl(effectId); if (StringUtils.isEmpty(url)) { return; } Effect effectVo = new Effect(); effectVo.URL = url; effectVo.BasePosition = target.transform.position; effectVo.BasePosition.z = GetMainCameraEffectZ(effectVo.BasePosition.y); effectVo.Offset = offset; effectVo.Target = target; effectVo.AutoDestroy = autoDestroy; effectVo.CreatedCallback = createdCallBack; effectVo.PlayedCallback = playedCallBack; effectVo.NeedCache = true; CreateEffect(effectVo); }
//创建UI特效 public void CreateUIEffect(string effectId, Vector3 pos, Effect.EffectCallback playedCallBack = null, bool needCache = true, Effect.EffectCreateCallback createdCallBack = null) { string url = UrlUtils.GetUIEffectUrl(effectId); CreateInternalUIEffect(url, pos, playedCallBack, needCache, createdCallBack); }
//Main特效内部创建函数 private void CreateInternalMainEffect(string url, Vector3 pos, bool autoDestroy, Effect.EffectCallback playedCallBack, bool needCache, float lastTime, Effect.EffectCreateCallback createdCallBack) { if (StringUtils.isEmpty(url)) { return; } Effect effectVo = new Effect(); effectVo.URL = url; effectVo.BasePosition = pos; effectVo.BasePosition.z = GetMainCameraEffectZ(pos.y); effectVo.Offset = Vector3.zero; effectVo.AutoDestroy = autoDestroy; effectVo.PlayedCallback = playedCallBack; effectVo.CreatedCallback = createdCallBack; effectVo.NeedCache = needCache; effectVo.LastTime = lastTime; CreateEffect(effectVo); }
//创建剧情场景特效 public void CreateStorySceneEffect(string effectId, Vector3 pos, Effect.EffectCallback playedCallBack = null, Effect.EffectCreateCallback createdCallBack = null) { string url = UrlUtils.GetStorySceneEffectUrl(effectId); CreateInternalMainEffect(url, pos, true, playedCallBack, true, 0, createdCallBack); }
//UI特效内部创建函数 private void CreateInternalUIEffect(string url, Vector3 pos, Effect.EffectCallback playedCallBack, bool needCache, Effect.EffectCreateCallback createdCallBack) { if (StringUtils.isEmpty(url)) { return; } if (!Singleton <EffectCameraMgr> .Instance.CameraEnabled) { Singleton <EffectCameraMgr> .Instance.OpenCamera(); } Effect effectVo = new Effect(); effectVo.URL = url; effectVo.BasePosition = pos; effectVo.BasePosition.z = Singleton <EffectCameraMgr> .Instance.CameraPosition.z + 40; effectVo.Offset = Vector3.zero; effectVo.AutoDestroy = true; effectVo.UIEffect = true; effectVo.PlayedCallback = playedCallBack; effectVo.CreatedCallback = createdCallBack; effectVo.NeedCache = needCache; CreateEffect(effectVo); }