【Unity教程搬運(yùn)】Unity中具有隨機(jī)掉落率的靈活戰(zhàn)利品系統(tǒng)

簡單的記錄一下思路:
1.編寫“戰(zhàn)利品”類 Loot(繼承了ScriptableObject類)
基本的字段有:
名稱: string name,
掉落概率:int chance,
精靈: Sprite lootSprite
在代碼中添加[CreateAssetMenu]標(biāo)簽
2.在Asset文件目錄中右鍵添加多個(gè)編寫的“戰(zhàn)利品”類 Loot(利用了[CreateAssetMenu]標(biāo)簽)
并對(duì)“戰(zhàn)利品”類Loot的字段賦值。
3.制作一個(gè)“戰(zhàn)利品”的預(yù)制體
可以用來處理“戰(zhàn)利品”類Loot中字段,包括顯示Sprite lootSprite
4.創(chuàng)建一個(gè)腳本 A ,用于處理何時(shí)掉落“戰(zhàn)利品”
該腳本中使用一個(gè)列表 List lootList(用于存儲(chǔ)“戰(zhàn)利品”類 Loot )。
該腳本編寫一個(gè)返回“戰(zhàn)利品”類 Loot 的方法 getLoot() 。
方法中生成一個(gè)隨機(jī)數(shù) num。
遍歷 lootList 。
將隨機(jī)數(shù) num 與遍歷到的 loot 的字段 chance 對(duì)比。根據(jù)對(duì)比結(jié)果確定 loot 是否啟用。
視頻中采用的對(duì)比規(guī)則: num < chance 時(shí) 啟用該loot。
可以直接將獲取到的 loot 返回,或者存儲(chǔ)到一個(gè)新的列表 List 中,最后返回 List 。
你會(huì)發(fā)現(xiàn),在遍歷 lootList 時(shí)會(huì)可能有多個(gè) loot 會(huì)符合對(duì)比規(guī)則。
可以在遍歷到第一個(gè) loot 時(shí)直接終止并返回該 loot ,也可以收集這些符合規(guī)則的 loot ,再次從中隨機(jī)挑選一個(gè)。
5.調(diào)用腳本 A 的 getLoot()