Пример #1
0
        public void Init()
        {
            impactLogicDataCacheCont = new MyDictionary <int, ImpactCacheData>();
            MyDictionary <int, object> datacont = SkillConfigProvider.Instance.impactLogicDataMgr.GetData();

            foreach (KeyValuePair <int, object> pair in datacont)
            {
                int             id   = pair.Key;
                ImpactLogicData ild  = pair.Value as ImpactLogicData;
                ImpactCacheData idlc = new ImpactCacheData();
                idlc.CurveAnimationInfo = new CurveInfo(ild.AnimationInfo);
                idlc.CurveLockFrameInfo = new CurveInfo(ild.LockFrameInfo);
                idlc.CurveMovementInfo  = new CurveMoveInfo(ild.CurveMoveInfo);
                idlc.MoveInfolist       = Converter.ConvertNumericList <float>(ild.CurveMoveInfo);
                if (!String.IsNullOrEmpty(ild.AdjustPoint))
                {
                    idlc.AdjustPointV3 = ImpactUtility.ConvertVector3D(ild.AdjustPoint);
                }
                impactLogicDataCacheCont.Add(id, idlc);
            }

            m_ImpactLogicPool = new ObjectPool <ImpactLogicInfo>();
            m_ImpactLogicPool.Init(128);

            m_EffectInfoPool = new ObjectPool <EffectInfo>();
            m_EffectInfoPool.Init(c_EffectPoolCapacity);

            GfxImpactSoundManager.Instacne.Init();
        }
Пример #2
0
        public void AddEffectData(int id)
        {
            EffectLogicData effectData = (EffectLogicData)SkillConfigProvider.Instance.ExtractData(SkillConfigType.SCT_EFFECT, id);

            if (null != effectData)
            {
                EffectInfo effectInfo = new EffectInfo();
                effectInfo.IsActive         = false;
                effectInfo.Path             = effectData.EffectPath;
                effectInfo.PlayTime         = effectData.PlayTime;
                effectInfo.RelativePoint    = ImpactUtility.ConvertVector3D(effectData.RelativePos);
                effectInfo.RotateWithTarget = effectData.RotateWithTarget;
                effectInfo.RelativeRotation = ImpactUtility.ConvertVector3D(effectData.RelativeRotation);
                effectInfo.MountPoint       = effectData.MountPoint;
                effectInfo.DelayTime        = effectData.EffectDelay;
                effectInfo.DelWithImpact    = effectData.DelWithImpact;
                m_EffectList.Add(effectInfo);
            }
        }