Unity3d - RPG项目学习笔记(二十八)

时间:2022-12-26 11:05:02

上期工程实现了通过id来构建技能的信息功能,本期开始构建角色技能的列表。

需求:

选择角色后,点击觉得技能栏,可以弹出角色的所有技能。

分析:

首先需要取得角色的所有技能,然后通过NGUITools.AddChild()来添加,最后通过Grid来管理排序,就可以了。

如何获取:建立数组,存储技能的id组,通过foreach来进行批量添加;

如何添加:父类是grid.gameObject,子类是skillItem,在添加之前需求将skillItem通过其SetId来设置其中的信息;

如何排序:在grid中使用grid.AddChlid()来实现管理。

根据上述分析,则编写代码如下:

Class SkillUI

{

    public int[] sowrdskillidList;

    public int[] magicianskillList;

    private PlayerStatus playerstatus;

    public gameObject skillItemPrefab;

    public Grid grid;

    void Start( )

    {

        int[] list = null;

        playerstaus = GameObject.FindGameObjectWithTag(Tags.player).GetCompnent<PlayerStatus>( );

        switch(playerstatus.heroType)

        {

            case HeroType.Magicina:

                list = magicianskillList;

                break;

            case HeroType.Swordman:

                list = swordmanskillList;

                break;

        } 

        foreach(int id in list)

        {

              GameObject goItem = NGUITools.AddChild(grid.gameObject,skillItemPrefab);

              grid.AddChild(goitem.transform);

              goItem.GetCompnent<SkillItem>().SetId(id);

        }

    }

}

这样实现了在游戏开始显示技能列表的功能。