Unity 中的随机数!

孙广东  2015.1.3

关于Unity游戏运行中的 随机数:

   Unity/Editor/Data/Documentation/en/Manual/RandomNumbers.html

添加随机游戏元素
    在许多游戏中,随机选择的items或values是很重要的。本节展示了如何使用Unity的内置随机函数来实现一些常见的游戏机制。

选择一个随机Item游戏元素从数组中:
在随机选择一个数组元素时,可以选择一个零和数组的最大值(这是等于数组的长度减去 1 )的随机整数。这是很容易使用内置的随机函数:—
var element = myArray[Random.Range(0, myArray.Length)];


注意,Random.Range 从一个范围(包括第一个参数但不包括第二)返回一个值,所以使用 myArray.Length。在这里能给出正确的结果。

选择不同概率的Items:
    有时,你需要选择随机的物品,但有些物品更容易被选上。例如,NPC可能会反应在几个不同的方式,当它遇到一个玩家:
 50% 友好的问候的机会
 25% 逃跑的机会
 20% 直接攻击的机会
 5% 提供金钱作为礼物的机会

    你能想象这些不同的结果作为一条纸分成几部分分别占总长度的一小部分的条。所占比例等于被选择的结果的概率。作出选择是相当于挑选一个随机点沿带状的长度(例如投掷一个飞镖),然后看到它是在。

 


          在脚本中,该文件条实际上是一个float 的数组,该数组中包含的Item的不同的概率。随机点则是由float数组总大小乘以 Random.value 值来获得(他们不需要总计达1;重要的是不同的值和 相对大小)。为了找出随机点元素落在哪个点数组,首先检查看它是否是小于第一个元素的值。如果是的话,那么第一个元素将被选择。否则,从数组中减去第一个元素的值,比较第二个元素,直到找到正确的元素。类似于下面这个代码:

//C#

    float Choose (float[] probs) {

        float total = 0;

        foreach (float elem in probs) {
            total += elem;
        }

        float randomPoint = Random.value * total;

        for (int i= 0; i < probs.Length; i&#
  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值