前期工程实现了技能到快捷栏的拖动,但是问题又出现了,我们不能让角色一开始就获取所有的技能,或者说,不能让角色一开始就可以使用所有的技能。
在本期工程,我们需要对技能进行遮蔽修饰,当角色等级小于技能所需的等级时,遮蔽存在。
思路:
①对技能图标加入遮蔽;②每次隐藏技能栏时对技能状态进行更新;③技能根据是否满足等级进行显示更新。
则脚本如下:
①在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;
}
}
}
这样就实现了技能的等级的检测。