public void LoadEffect(int id)
 {
     if (!this.m_dicAllPreLoadAssetRequest.ContainsKey(id))
     {
         if (!this.m_EffectDatas.ContainsKey(id))
         {
             EffectLogger.Error("!m_EffectDatas.ContainsKey(id):" + id);
         }
         else
         {
             this.m_dicAllPreLoadAssetRequest[id] = new List <IAssetRequest>();
             EffectData effectData = this.m_EffectDatas[id];
             for (int i = 0; i < effectData.InstanceDatas.Count; i++)
             {
                 EffectInstanceData effectInstanceData = effectData.InstanceDatas[i];
                 IAssetRequest      assetRequest       = ResourceManager.singleton.LoadEffect(effectInstanceData.Path, null, AssetPRI.DownloadPRI_Low);
                 if (null != assetRequest)
                 {
                     this.m_dicAllPreLoadAssetRequest[id].Add(assetRequest);
                 }
             }
         }
     }
 }
        public int GetEffectCameraControlType(int effectid)
        {
            int result;

            if (this.m_EffectDatas.ContainsKey(effectid))
            {
                EffectData effectData = this.m_EffectDatas[effectid];
                if (effectData.InstanceDatas.Count > 0)
                {
                    if (effectData.InstanceDatas[0].Type == EffectInstanceType.Stand)
                    {
                        result = 1;
                        return(result);
                    }
                    if (effectData.InstanceDatas[0].Type == EffectInstanceType.Follow)
                    {
                        result = 0;
                        return(result);
                    }
                }
            }
            result = -1;
            return(result);
        }
Ejemplo n.º 3
0
        public bool Load(EffectData data)
        {
            if (this.m_EffectInstances == null)
            {
                this.m_EffectInstances = new List <EffectInstance>();
            }
            else
            {
                this.m_EffectInstances.Clear();
            }
            bool result;

            if (null == data)
            {
                result = false;
            }
            else
            {
                this.m_Data    = data;
                this.SourcePos = new Vector3(0f, 0f, 0f);
                this.TargetPos = new Vector3(0f, 0f, 0f);
                foreach (EffectInstanceData current in this.m_Data.InstanceDatas)
                {
                    EffectInstance effectInstance = new EffectInstance();
                    effectInstance.FatherEffect = this;
                    if (effectInstance.Load(current))
                    {
                        this.m_EffectInstances.Add(effectInstance);
                    }
                }
                this.m_Loaded    = true;
                this.m_StartTime = Time.time;
                result           = true;
            }
            return(result);
        }
        public int PlayEffect(int id, Beast iCast, Vector3 vec3SrcPos, IXUIObject uiObjectCast,
                              Beast iTarget, Vector3 vec3DestPos, IXUIObject uiObjectTarget, Vector3 vec3FixDir)
        {
            int num = -1;

            try
            {
                if (this.m_EffectDatas.ContainsKey(id))
                {
                    EffectData effectData = this.m_EffectDatas[id];
                    if (null != effectData)
                    {
                        if (effectData.Reverse > 0)
                        {
                            if (iCast == null || null == iTarget)
                            {
                                effectData.Reverse = 0;
                            }
                        }
                        Effect effect = new Effect();
                        effect.m_nEffectTypeId = id;
                        effect.Caster          = ((effectData.Reverse == 0) ? iCast : iTarget);
                        effect.Target          = ((effectData.Reverse == 0) ? iTarget : iCast);

                        /*if (null != uiObjectCast)
                         * {
                         *  effect.CasterUIObject = SafeXUIObject.GetSafeXUIObject(uiObjectCast);
                         * }
                         * if (null != uiObjectTarget)
                         * {
                         *  effect.TargetUIObject = SafeXUIObject.GetSafeXUIObject(uiObjectTarget);
                         * }*/
                        num = this.GetID();
                        if (num != -1)
                        {
                            if (this.HighLight)
                            {
                                effect.HighLight = true;
                                this.m_HightLightEffect.Add(num, effect);
                            }
                            effect.Load(effectData);
                            effect.Id = num;
                            this.m_Effects.Add(num, effect);
                            if (vec3SrcPos != Vector3.zero)
                            {
                                if (vec3DestPos != Vector3.zero)
                                {
                                    this.m_Effects[num].SetSrcPos(vec3SrcPos);
                                }
                                else
                                {
                                    this.m_Effects[num].SourcePos = vec3SrcPos;
                                }
                            }
                            if (vec3DestPos != Vector3.zero)
                            {
                                this.m_Effects[num].TargetPos = vec3DestPos;
                            }
                            if (vec3FixDir != Vector3.zero)
                            {
                                this.m_Effects[num].FixDir = vec3FixDir;
                            }
                            EffectLogger.Debug("PlayEffect:" + id);
                        }
                    }
                }
                else
                {
                    EffectLogger.Error("!m_EffectDatas.ContainsKey(id):" + id);
                }
            }
            catch (Exception ex)
            {
                EffectLogger.Fatal(ex.ToString());
            }
            return(num);
        }