Unity 随机数的使用
2014-07-14 16:18
162 查看
脚本语言:C#
一个比较常用的例子是游戏中的主角碰到场景中的NPC时,NPC会随机做出反应,例如有50%几率来友好的致敬,25%几率走开,20%几率反身攻击和%%的几率赠送礼物。
创建一个NPCTest脚本,用于模拟NPC动作:
点击Game视图中的Click按钮,可以看到打印出来的数据:
![](http://images.cnitblog.com/i/335529/201407/141616531627089.jpg)
参考链接:
更为详细的介绍:/article/2547198.html
一个比较常用的例子是游戏中的主角碰到场景中的NPC时,NPC会随机做出反应,例如有50%几率来友好的致敬,25%几率走开,20%几率反身攻击和%%的几率赠送礼物。
创建一个NPCTest脚本,用于模拟NPC动作:
using UnityEngine; using System.Collections; public class NPCTest : MonoBehaviour { //NPC动作几率 float[] probArray = {0.5f , 0.25f , 0.2f , 0.05f}; int probValue; //NPC选择值 // Use this for initialization void Start () { } // Update is called once per frame void Update () { } //选择函数,返回NPC的选项下标值 int Choose(float[] probe) { float total = 0.0f; for (int i=0; i < probe.Length; i++) { total += probe[i]; } // Random.value方法返回一个0—1的随机数 float randomPoint = Random.value * total; for (int i=0; i < probe.Length; i++) { if(randomPoint<probe[i]) return i; else randomPoint -= probe[i]; } return probe.Length - 1; } void OnGUI(){ if( GUI.Button(new 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"); break; } } } }
点击Game视图中的Click按钮,可以看到打印出来的数据:
![](http://images.cnitblog.com/i/335529/201407/141616531627089.jpg)
参考链接:
更为详细的介绍:/article/2547198.html
相关文章推荐
- Unity使用Random每次生成与上次不一致的随机数
- J2ME中使用随机数
- 使用Random函数产生随机数
- Visual C#中随机数使用实例
- 使用 Unity Application Block(三):理解和使用依赖注入的键
- Unity(五):使用场景Ⅱ:用于单例模式
- AS使用Random函数创建随机数
- ASP.NET基础教程-随机数的使用
- 使用 Unity(一):Unity 应用程序块容器介绍
- 使用 Unity(二):配置 Unity 、读取配置信息和获取对象
- 使用随机数
- Visual C#中随机数使用实例
- 在 PHP 中使用随机数的三个步骤
- 使用随机数,解释函数rnd()
- 使用加密服务提供程序 (CSP) 提供的实现来实现加密随机数生成器 (RNG)
- 在PHP中使用随机数的三个步骤
- 在ASP中使用SQL语句之8:随机数
- C#随机数的使用
- java中使用随机数交换数组元素
- Unity(四):使用场景Ⅰ:建立类型映射