欢迎光临散文网 会员登陆 & 注册

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

2023-06-10 15:09 作者:在星群间游荡  | 我要投稿

简单的记录一下思路:

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()

【Unity教程搬运】Unity中具有随机掉落率的灵活战利品系统的评论 (共 条)

分享到微博请遵守国家法律