Unity 随机数的使用
2024-10-09 07:38:34
脚本语言:C#
一个比较常用的例子是游戏中的主角碰到场景中的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=; i < probe.Length; i++) {
total += probe[i];
} // Random.value方法返回一个0—1的随机数
float randomPoint = Random.value * total; for (int i=; i < probe.Length; i++) {
if(randomPoint<probe[i])
return i;
else
randomPoint -= probe[i];
} return probe.Length - ;
} void OnGUI(){
if( GUI.Button(new Rect(,,,),"Click") )
{
probValue = Choose(probArray); switch(probValue){
case :
Debug.Log ("NPC向我致敬!");
break;
case :
Debug.Log ("NPC离开了!");
break;
case :
Debug.Log ("NPC攻击我了!");
break;
case :
Debug.Log ("NPC给我钱了!");
break;
default:
Debug.Log("我没有碰到NPC");
break;
}
}
}
}
点击Game视图中的Click按钮,可以看到打印出来的数据:
参考链接:
更为详细的介绍:http://blog.csdn.net/luyuncsd123/article/details/16919547
最新文章
- java sdk与jdk区别
- 把VSO作为GitHub上JavaScript项目的免费CI服务器
- WPF中获得控件相对于控件的相对位置
- js 控制div 显示隐藏的问题
- Javascript函数中传递带空格的参数
- C#泛型详解
- parseSdkContent failed 解决方案
- Core Erlang:Erlang的Core中间表示
- Chris Richardson微服务翻译:微服务之事件驱动的数据管理
- Elasticsearch SQL
- 用dlopen,dlsym加载动态链接库.so中函数
- jquery对象和javascript对象的console.log结果
- 利用R求分位数及画出箱型图
- wav文件格式及ffmpeg处理命令
- test4 结对项目
- 五:Edits Viewer离线日志查看器
- Error: EACCES: permission denied, symlink
- cookie禁用后的session
- JAVA常见算法题(二十三)
- centos 6.9使用Rsync+Inotify-tools实现数据实时同步