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(); }
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); } }