目录
声明
本教程学习均来自U3D中文课堂麦扣老师
1.Action Button 快捷栏按键
保证我们武器栏当中有武器,运行游戏发现没有生成武器 ,可以的话尽量使用MainMenu去进入游戏去测试我们背包里的每一个功能,确保它们没问题
现在做一个方法够关闭背包和Stats,先实现这个CloseButton按钮,
这样就可以关闭背包和Stats了,那么如何再次打开呢,我们要在按键上做一个设置:
InventoryManager:
[Header("UI Panel")]
public GameObject bagPanel;
public GameObject statsPanel;
bool isOpen = false;//背包是否打开
private void Update()
{
if(Input.GetKeyDown(KeyCode.B))//按下B键显示背包
{
isOpen = !isOpen;
bagPanel.SetActive(isOpen);
statsPanel.SetActive(isOpen);
}
}
这样就实现了打开和关闭背包了
接下来我们要完成的就是Action Bar了,我们要Action Bar上面的每一个按键来添加匹配的键盘的按键,所以单独创建一个代码ActionButton,挂载到ActionButton预制体上,
ActionButton:
public class ActionButton : MonoBehaviour
{
public KeyCode actionKey;
}
设置按键1-6,
ActionButton:
public class ActionButton : MonoBehaviour
{
public KeyCode actionKey;
private SlotHolder currentSlotHolder;
private void Awake()
{
currentSlotHolder = GetComponent<SlotHolder>();
}
private void Update()
{
if(Input.GetKeyDown(actionKey) && currentSlotHolder.itemUI.GetItem())//按下匹配按键且格子里有物品
{
currentSlotHolder.UseItem();//使用物品
}
}
}
现在就可以使用快捷栏按键和双击使用物品了
但是如果双击空格子,会出现报错,解决:
SlotHolder:在使用物品方法中做一个非空的判断
public void UseItem()//使用物品
{
if (itemUI.GetItem() != null)
{
if (itemUI.GetItem().itemType == ItemType.Useable && itemUI.Bag.items[itemUI.Index].amount > 0)//是可使用物品且数量大于0 itemUI.Bag.items[itemUI.Index].ItemData.itemType
{
GameManager.Instance.playerStats.ApplyHealth(itemUI.GetItem().useableData.healthPoint);
itemUI.Bag.items[itemUI.Index].amount -= 1;//使用后数量减1
}
}
UpdateItem();//更新物品
}
这样就不会报错了
现在就实现了打开和关闭背包和人物的窗口,还有用快捷键来操作实现物品了
2.Stats Info 显示 Player 相关信息
我们来实现一下我们的信息面板,希望能显示Player的基本模型,并且可以在下面Update它的一些数据,
新建RawImage