Example #1
0
    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);
        }
    }
Example #2
0
    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);
            }
        }
    }
Example #3
0
    public SkillDataVo[] GetArray()

    {
        SkillDataVo[] array = new SkillDataVo[_skillDic.Values.Count];
        _skillDic.Values.CopyTo(array, 0);

        return(array);
    }
Example #4
0
    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);
        //}
    }
Example #5
0
            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