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

前期工程实现了技能到快捷栏的拖动,但是问题又出现了,我们不能让角色一开始就获取所有的技能,或者说,不能让角色一开始就可以使用所有的技能。

在本期工程,我们需要对技能进行遮蔽修饰,当角色等级小于技能所需的等级时,遮蔽存在。

思路:

①对技能图标加入遮蔽;②每次隐藏技能栏时对技能状态进行更新;③技能根据是否满足等级进行显示更新。

则脚本如下:

①在skillitem的prefabs中加入一个暗色图标,名称变更为mask;

②对SkillUI脚本更新如下:

Class SkillUI

{

    void UpdateShow( )

    {

        SkillItem[] items = this.GetComponentsInChild<SkillItem>();

        foreach(SkillItem item in items)

        {

            item.Update(); //该方法我们在后续进行更新

        }

    }

    public void TranslateState( )

    {

        if(isShow)

        {

            tween.PlayRelease( );

            isShow = false;

        }

        else

        {

            UpdateShow( );

            tween.PlayForward( );

            isShow = true;

        }

    }

}

③对SkillItem脚本更新如下:

Class SkillItem

{

        private GameObject iconMask;

        void Awake( )

        {

             iconMask = transform.Find("iconMask").gameObject;

             iconMask.SetActive(false);

        }

        public void Update( )

        {

            if(info.level <= playerstatus.level)

            {

                 iconMask.SetActive(false);

                 this.GetComponent<SkillIcon>( ).enable = true;

            }

            else

            {

                 iconMask.SetActive(true);

                 this.GetComponent<SkillIcon>( ).enable = false;

            }

        }

}

这样就实现了技能的等级的检测。

posted on 2016-09-27 14:48  心醉的未来  阅读(384)  评论(0编辑  收藏  举报

导航