将集合四处学来的loot drop 方法

-----------------------------------------------

来源:https://www.youtube.com/watch?v=eg7i6iLHoIY   

模型解释来源:http://docs.manew.com/Manual/RandomNumbers.html  (在项目里添加各种随机元素,不同概率选择项目看第2条)


视频里的解决思路是:


1.先建立scriptobject

设立一个scriptobject DropCurrency用来表示将要随机的item的每条属性,包括name,prefab,该item选中的比率。

2.判定是否掉宝

再在脚本里声明一个Public List<DropCurrency>,然后在Unity里填入各项属性。脚本里还有一个 public int dropChance用来判断当前是否掉宝,比如20%的概率掉宝,随机到80%时就返回。

3.判定掉落的具体item

判定到掉宝区间了,然后开始按各item的dropRarity比重来计算掉落。


原理:

Unity 3D Loot Drop

Unity 3D Loot Drop


注意:在计算里,总掉落率不是100%或者100,比如1%,2%,3%三件item,90%不掉落。先计算是否掉落,如果掉落则落在6%区间里了,这时候必然会掉落一件,所以总比重(weight)是6并在6内随机射飞镖。

4. 视频源代码:

Unity 3D Loot Drop


5.视频内Unity设置:

Unity 3D Loot Drop


另一个droploot脚本里的放置代码参考

Unity 3D Loot Drop







相关文章: