Пример #1
0
    // Use this for initialization
    void Start()
    {
        if (skills.Length == 0)
        {
            return;
        }
        LCharacter  chatacter = GetComponent <LCharacter>();
        SkillParams _params   = new SkillParams();

        _params.cds  = skills;
        _params.type = type;
        chatacter.AddParam(cdName, _params);
        for (int i = 0; i < skills.Length; i++)
        {
            LCharacterSkillAction a = new LCharacterSkillAction();
            a.SkillId    = skills[i].skillId;
            a.priority   = priority;
            a.button     = button;
            a.cdState    = state;
            a.cdName     = cdName;
            a.skillState = i;
            a.cdParam    = _params;


            _params.button = button;
            chatacter.AddAction(a);
        }
    }
Пример #2
0
    // Use this for initialization
    void Start()
    {
        LCharacter            chatacter = GetComponent <LCharacter>();
        LCharacterSkillAction a         = new LCharacterSkillAction();

        SkillParams _params = new SkillParams();

        _params.type = type;
        CDData[] cds = new CDData[1] {
            new CDData()
        };
        cds[0].cd   = cd;
        _params.cds = cds;
        if (cdName == null || cdName.Length == 0)
        {
            cdName = skillName;
        }
        chatacter.AddParam(cdName, _params);

        a.SkillId      = skillName;
        a.priority     = priority;
        a.button       = button;
        a.skillState   = 0;
        a.cdState      = CdState.NORMAL;
        a.cdName       = cdName;
        _params.button = button;
        chatacter.AddAction(a);
    }
Пример #3
0
    // Use this for initialization
    void Start()
    {
        LChatacter            chatacter = GetComponent <LChatacter>();
        LCharacterSkillAction a         = new LCharacterSkillAction();

        CDParams _params = new CDParams();

        CDData[] cds = new CDData[1] {
            new CDData()
        };
        cds[0].cd   = cd;
        _params.cds = cds;
        string cdName = "cd_" + skillName;

        chatacter.AddParam(cdName, _params);

        a.SkillId    = skillName;
        a.priority   = priority;
        a.button     = button;
        a.skillState = 0;
        a.cdState    = CdState.NORMAL;
        a.cdName     = cdName;
        chatacter.AddAction(a);
    }
Пример #4
0
    public override IEnumerator onInit(LChatacterRecourceInterface loader, LCharacterInterface character, AddCoroutineFun fun)
    {
        hasLoaded = false;
        CharactorLoadHandle handle0 = loader.LoadSkillDataFile(SkillId, fun);

        while (!handle0.isFinish)
        {
            yield return(null);
        }
        skillData = (LCHSkillData)handle0.asset;

        role.type  = 1;
        role.objId = -1;

        character.UpdateSkillRange(cdName, skillData.subSkills[skillState].skillRange, skillData.subSkills[skillState].skillWidth);
        //
        objs[role.objId] = role;
        objList          = new ObjectContain[skillData.subSkills[skillState].objs.Length];
        for (int i = 0, l = skillData.subSkills[skillState].objs.Length; i < l; i++)
        {
            var           o  = skillData.subSkills[skillState].objs[i];
            ObjectContain oc = new ObjectContain();
            oc.SetInformation(o);
            objs[o.id] = oc;
            objList[i] = oc;
            if (o.id == -1)//不加载主模型。
            {
                continue;
            }
            else if (o.type == 1)//对象(特效,模型...)。
            {
                //Debug.LogError("load " + oc.mod);
                var handle = loader.loadResource(oc.mod_name, oc.mod, fun);
                while (!handle.isFinish)
                {
                    yield return(1);
                }
                if (null != handle.asset)
                {
                    if (handle.asset == null)
                    {
                        Debug.LogError("找不到资源,是否没打包 ? " + oc.mod);
                    }
                    else
                    {
                        oc.baseGameObject = (GameObject)handle.asset;
                        if (null != oc.baseGameObject)
                        {
                            oc.gameobject = GameObject.Instantiate(oc.baseGameObject);
                            oc.gameobject.SetActive(false);
                            oc.gameobject.name      = o.name;
                            oc.gameobject.hideFlags = HideFlags.None;
                            oc.systems = oc.gameobject.GetComponentsInChildren <ParticleSystem>();
                        }
                    }
                }
            }
            else if (o.type == 2)//(碰撞体)。
            {
                GameObject g = new GameObject();
                g.layer = character.GetAttackLayer();
                g.SetActive(false);
                g.AddComponent <BoxCollider>();
                g.hideFlags   = HideFlags.DontSave;
                oc.gameobject = g;
                g.name        = o.name;
            }
            else if (o.type == 3)//模型本身碰撞体。暂不连接。
            {
                continue;
            }
            else if (o.type == 4)//加载声音
            {
                GameObject g = new GameObject();
                g.name        = o.name;
                oc.gameobject = g;
                loader.loadResource(oc.mod_name, oc.mod, fun);
            }
        }
        for (int i = 0, c0 = skillData.subSkills[skillState].events.Count; i < c0; i++)
        {
            var _e      = skillData.subSkills[skillState].events[i];
            var contain = objs[_e.objId];
            contain.events.Add(_e);
        }

        for (int i = 0, c0 = skillData.subSkills[skillState].channels.Count; i < c0; i++)
        {
            var _c      = skillData.subSkills[skillState].channels[i];
            var contain = objs[_c.objId];
            contain.channels.Add(_c);
        }
        if (skillState < skillData.subSkills.Length - 1)
        {
            {
                if (skillState == 0)
                {
                    CDData [] ary = new CDData[skillData.subSkills.Length];
                    for (int i = 0; i < skillData.subSkills.Length; i++)
                    {
                        ary[i] = new CDData();
                    }

                    ary[0].cd      = cdParam.cds[0].cd;
                    ary[0].skillId = cdParam.cds[0].skillId;


                    cdParam.cds = ary;
                    //public CDData[] cds;
                }
                LCharacterSkillAction a = new LCharacterSkillAction();

                a.SkillId    = SkillId;
                a.priority   = priority;
                a.button     = button;
                a.skillState = skillState + 1;
                a.cdState    = cdState;
                a.cdName     = cdName;

                a.cdParam = cdParam;
                a.cdParam.cds[a.skillState].skillId = SkillId;
                a.cdParam.cds[a.skillState].cd      = skillData.subSkills[a.skillState].cd;
                character.AddAction(a);
            }
        }
        hasLoaded = true;
    }