41. 抽卡皮膚的實際邏輯

hellozjf發表於2024-03-12

本節目標

開啟抽卡皮膚之後,顯示三張可以抽取的卡牌,點選選擇卡牌之後將卡牌新增到牌堆中,然後遊戲勝利皮膚隱藏抽卡按鈕

實現方法

新增卡牌的 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

相關文章