這一章, 我們先來實作北極熊吃飯和搓澡的道具功能:
Fish Prompt:
實作代碼: 道具的功能 - Fish
1. 是一個可以掛載在Prefab上的代碼
2. 可以在場景中拖拽
3. 可以放到寵物身上餵食, 吃了之後就會消失
4. 吃的時候寵物要播放吃東西的動畫 - Eat
5. 吃的時候要播放吃東西的音效
6. 寵物吃東西的時候不會移動
Soap Prompt:
實作代碼: 道具的功能 - Soap
1. 是一個可以掛載在Prefab上的代碼
2. 可以在場景中拖拽
3. 可以放到寵物身上搓澡, 搓澡的時候會隨機產生泡泡
4. 寵物被搓澡的時候播放搓澡的動畫 - Bath
5. 寵物被搓澡的時候不會移動
我這次直接把這兩個道具的Prompt 放在同一個對話框給 Cursor
看看它能不能知道要生成兩個通用的道具代碼
後來它幫我新增的四個代碼, 也有告訴我要怎麼使用:
但是實際寫代碼的時候, 建議還是一個一個功能實現會比較安全一點
實際的代碼可以到 Github 上去查看, 我這裡礙於篇幅就不貼出來了
https://github.com/yayapipi/YapiPet/tree/main/Assets/VibePet/Scripts
至於吃東西和搓澡的音效我們可以使用 Unity 內建的AI來生成試試看:
在 Fish 的物件上需要先增加 Box Collider 2D 和 Rigidbody 2D
Box Collider 2D 的 IsTrigger 要打勾, Rigidbody2D 的 Gravity Scale 設定成 0
最後再掛上 Fish Item 的物件, 把相對應的變量拉到 Inspector 中, 播放遊戲進行測試
在測試的過程中有發現任何的 Bug
可以直接在 Cursor 中多對話幾次進行修正
後來我覺得搓澡的效果不太好, 於是就讓 Cursor 重寫一次
現在變成了 Soap Item 和 Bubble Effect 兩個代碼
Soap 的物件也是一樣要掛上 Box Collider 2D 和 Rigidbody 2D 的元件
然後要額外增加一個 Bubble 泡泡的遊戲物件
並且在新增的泡泡物件上掛上 Bubble Effect.cs 的代碼
最後搓澡的時候, 就會有泡泡跳出來的效果:
最終道具的 Demo 效果:
下一章, 我們繼續補UI拖放道具出來的功能