本节目标
打开抽卡面板之后,显示三张可以抽取的卡牌,点击选择卡牌之后将卡牌添加到牌堆中,然后游戏胜利面板隐藏抽卡按钮
实现方法
添加卡牌的 UI Document
需要给 Card 也添加turnbutton
样式,这样鼠标移动过去的时候会有放大的效果
抽卡面板调试布局
调试的时候,我们可以把 Project 里面额 CardTemplate.uxml 添加到 Container 里面看看效果,等调试没问题了再把它们删掉
打开抽卡面板的时候添加卡牌
游戏胜利的时候,点击选择卡牌按钮,会触发PickCardEvent
事件
UIManager 在收到PickCardEvent
事件之后,会调用UIManager.OnPickCardEvent
方法,然后会将pickCardPanel
显示出来
pickCardPanel
在OnEnable
的时候,会往Container
里面添加三张卡牌
其中CardManager
里面添加了一个新方法GetNewCardData()
,它的实现内容如下所示。这段代码的意思是获取一个随机的卡牌数据,但是数据内容不能和上一张卡牌数据一致
PickCardManager
也添加了InitCard
方法,它会根据传递过来的CardDataSO
数据,将数据赋值到对应的UI组件上面去
当卡牌被点击的时候,会将当前点击的卡牌禁用,并让另外两张卡牌启用
点击确定按钮之后,会通过cardManager
往牌库中添加卡牌,并广播finishPickCardEvent
事件
CardManager.UnlockCard
代码如下
finishPickCardEvent
被GameWinPanel
、UIManager
监听
GameWinPanel
在收到finishPickCardEvent
事件之后,会调用GameWinPanel.OnFinishPickCardEvent
,然后它就会把pickCardButton
隐藏掉
UIManager
在收到finishPickCardEvent
事件之后,会调用UIManager.OnFinishPickCardEvent
,然后它会把pickCardPanel
隐藏掉
项目相关代码
代码仓库:https://gitee.com/nbda1121440/DreamOfTheKingdom.git