【Unity教程搬运】Unity中具有随机掉落率的灵活战利品系统

简单的记录一下思路:
1.编写“战利品”类 Loot(继承了ScriptableObject类)
基本的字段有:
名称: string name,
掉落概率:int chance,
精灵: Sprite lootSprite
在代码中添加[CreateAssetMenu]标签
2.在Asset文件目录中右键添加多个编写的“战利品”类 Loot(利用了[CreateAssetMenu]标签)
并对“战利品”类Loot的字段赋值。
3.制作一个“战利品”的预制体
可以用来处理“战利品”类Loot中字段,包括显示Sprite lootSprite
4.创建一个脚本 A ,用于处理何时掉落“战利品”
该脚本中使用一个列表 List lootList(用于存储“战利品”类 Loot )。
该脚本编写一个返回“战利品”类 Loot 的方法 getLoot() 。
方法中生成一个随机数 num。
遍历 lootList 。
将随机数 num 与遍历到的 loot 的字段 chance 对比。根据对比结果确定 loot 是否启用。
视频中采用的对比规则: num < chance 时 启用该loot。
可以直接将获取到的 loot 返回,或者存储到一个新的列表 List 中,最后返回 List 。
你会发现,在遍历 lootList 时会可能有多个 loot 会符合对比规则。
可以在遍历到第一个 loot 时直接终止并返回该 loot ,也可以收集这些符合规则的 loot ,再次从中随机挑选一个。
5.调用脚本 A 的 getLoot()