本节目标

打开抽卡面板之后,显示三张可以抽取的卡牌,点击选择卡牌之后将卡牌添加到牌堆中,然后游戏胜利面板隐藏抽卡按钮

实现方法

添加卡牌的 UI Document

需要给 Card 也添加turnbutton样式,这样鼠标移动过去的时候会有放大的效果

抽卡面板调试布局

调试的时候,我们可以把 Project 里面额 CardTemplate.uxml 添加到 Container 里面看看效果,等调试没问题了再把它们删掉

打开抽卡面板的时候添加卡牌

游戏胜利的时候,点击选择卡牌按钮,会触发PickCardEvent事件

UIManager 在收到PickCardEvent事件之后,会调用UIManager.OnPickCardEvent方法,然后会将pickCardPanel显示出来

pickCardPanelOnEnable的时候,会往Container里面添加三张卡牌

其中CardManager里面添加了一个新方法GetNewCardData(),它的实现内容如下所示。这段代码的意思是获取一个随机的卡牌数据,但是数据内容不能和上一张卡牌数据一致

PickCardManager也添加了InitCard方法,它会根据传递过来的CardDataSO数据,将数据赋值到对应的UI组件上面去

当卡牌被点击的时候,会将当前点击的卡牌禁用,并让另外两张卡牌启用

点击确定按钮之后,会通过cardManager往牌库中添加卡牌,并广播finishPickCardEvent事件

CardManager.UnlockCard代码如下

finishPickCardEventGameWinPanelUIManager监听

GameWinPanel在收到finishPickCardEvent事件之后,会调用GameWinPanel.OnFinishPickCardEvent,然后它就会把pickCardButton隐藏掉

UIManager在收到finishPickCardEvent事件之后,会调用UIManager.OnFinishPickCardEvent,然后它会把pickCardPanel隐藏掉

项目相关代码

代码仓库:https://gitee.com/nbda1121440/DreamOfTheKingdom.git

标签:20240312_2012