脚本语言: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

最新文章

  1. java sdk与jdk区别
  2. 把VSO作为GitHub上JavaScript项目的免费CI服务器
  3. WPF中获得控件相对于控件的相对位置
  4. js 控制div 显示隐藏的问题
  5. Javascript函数中传递带空格的参数
  6. C#泛型详解
  7. parseSdkContent failed 解决方案
  8. Core Erlang:Erlang的Core中间表示
  9. Chris Richardson微服务翻译:微服务之事件驱动的数据管理
  10. Elasticsearch SQL
  11. 用dlopen,dlsym加载动态链接库.so中函数
  12. jquery对象和javascript对象的console.log结果
  13. 利用R求分位数及画出箱型图
  14. wav文件格式及ffmpeg处理命令
  15. test4 结对项目
  16. 五:Edits Viewer离线日志查看器
  17. Error: EACCES: permission denied, symlink
  18. cookie禁用后的session
  19. JAVA常见算法题(二十三)
  20. centos 6.9使用Rsync+Inotify-tools实现数据实时同步

热门文章

  1. hadoop自带的writable类型
  2. [转] 学习React Native必看的几个开源项目
  3. Configuring Robolectric
  4. WKWebView使用过程中的那些坑
  5. JS实现一键复制功能
  6. 判断浏览器是否支持FileReader
  7. HTML5 Media事件
  8. 与数据库打交道的Adapter----SimpleCursorAdapter
  9. sp_addlinkedserver的一些操作
  10. SQL中使用的一些函数问题