예제 #1
0
        //创建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);
        }
예제 #2
0
        //创建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);
        }
예제 #3
0
        //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);
        }
예제 #4
0
        //创建剧情场景特效
        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);
        }
예제 #5
0
        //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);
        }