按概率输出相应的随机数

#pragma strict
var  probArray :float[];
private var  probValue:int;

probArray = {0.5,0.25,0.05,0.02};


function OnGUI(){


  if (GUI.Button(Rect(10,70,50,30),"Click"))
        
        {
        
        probValue = Choose(probArray);
       
        
        switch(probValue){
        case 0:
        
           Debug.Log("NPC向我敬礼了");
           break;
        case 1:
        
           Debug.Log("NPC离开了");
           break;
        
        case 2:
        
           Debug.Log("NPC打我了");
           break;
        case 3:
        
           Debug.Log("NPC给我钱了");
           break;
        
             default: 
                Debug.Log("我没碰到NPC");
                 
         }
                  
     }
            
  }
  function Choose(probs: float[]):int {
var total = 0.0;


for (elem in probs) {
   // Debug.Log(elem);
total += elem;
// Debug.Log(total);
}


var randomPoint = Random.value * total;

    var i:int;
    
for (i = 0; i < probs.Length;i++) {
if (randomPoint < probs[i])

   return i;
else
randomPoint -= probs[i];
}


return probs.Length - 1;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值