public SkillBase(SpriteController obj, int skillID) { State = SkillState.None; this.owner = obj; this.CurCD = 0f; dataVo = ConfigManager.GetSkillDataById(skillID); if (owner.actionMng != null && owner.actionMng.TryGetAnimationLength(dataVo.actionName, out curAniLength)) { curAniLength -= 0f; } else { curAniLength = 1f; } if (dataVo.BufferID.Length > 0) { dataVo.bufferEntity = new BufferDataVo[dataVo.BufferID.Length]; for (int i = 0; i < dataVo.bufferEntity.Length; i++) { dataVo.bufferEntity[i] = ConfigManager.GetConfigBufferData(dataVo.BufferID[i]); } } aniName = dataVo.actionName; //加载特效 GameObject effecPre = LoadCache.LoadEffect(dataVo.effectName); if (effecPre != null) { effect = GameObject.Instantiate(effecPre) as GameObject; effect.SetActive(false); } }
void initSkillData(string jsonPath) { // JsonData json = JsonMapper.ToObject(jsonPath); foreach (string key in json.Keys) { SkillDataVo data = new SkillDataVo(); data.ID = int.Parse(key); data.SkillAccount = json[key]["skillAccount"].ToString(); data.SkillName = json[key]["skillName"].ToString(); data.actionName = json[key]["ActionName"].ToString(); if (((IDictionary)json[key]).Contains("BufferID")) { JsonData BufferID = json[key]["BufferID"]; if (BufferID.IsArray) { data.BufferID = new int[BufferID.Count]; for (int i = 0; i < BufferID.Count; i++) { data.BufferID[i] = int.Parse(BufferID[i].ToString()); } } } if (_skillDic.ContainsKey(data.ID) == false) { _skillDic.Add(data.ID, data); } } }
public SkillDataVo[] GetArray() { SkillDataVo[] array = new SkillDataVo[_skillDic.Values.Count]; _skillDic.Values.CopyTo(array, 0); return(array); }
public SkillBase(int skillID) { State = SkillState.None; this.CurCd = 0f; //dataVo = ConfigDataManager.GetSkillDataByID(skillID); dataVo = new SkillDataVo(); //拿到该动画时长 curAnimalLength = 1f; animalName = dataVo.animName; //加载特效 //GameObject effectPre = LoadCache.LoadEffect(dataVo.effectName); //if (effectPre != null) //{ // effect = GameObject.Instantiate(effectPre) as GameObject; // effect.SetActive(false); //} }
return false; } // 获得从当前Obj到目标Obj的方向,然后求和当前Obj的朝向夹角。 Vector2 tarPos = new Vector2(trans.position.x, trans.position.z); Vector2 myPos = new Vector2(owner.transform.position.x, owner.transform.position.z); Vector2 mydir = new Vector2(owner.transform.forward.x, owner.transform.forward.z); Vector2 dir = tarPos - myPos; float angle = Vector2.Angle(mydir.normalized, dir.normalized); if (angle < _angle / 2f) { float toPosDis = Vector2.Distance(tarPos, myPos); if (toPosDis <= _dis) { return true; } else