unity:添加随机的游戏元素


前言

随机选取项目或值在很多游戏中非常重要。该部分说明如何使用 Unity 内置随机函数执行一些常见的游戏机制。

一、从数组选择随机项目

可随机挑选数组元素:
1.是因为能够选择零到数组最大索引值(等于数组长度减去一)之间的随机整数。
2.使用内置 Random.Range 函数就可轻松做到:

var element = myArray[Random.Range(0, myArray.Length)];

请注意:Random.Range 从包含第一个参数但排除第二个参数的范围中返回一个值,所以在此处使用 myArray.Length 能给出正确结果。

二、用不同概率选择项目

1.概率:

有时候,您需要随机选择项目,但有些项目被选中的概率比其他项目大。
例如,NPC 在遇到玩家时会以几种不同的方式作出反应:-

50% 的机率会友好问候
25% 的机率会跑开
20% 的机率会立即攻击
5% 的机率会提供 金钱作为礼物
您可以想象这些不同的结果分布在分成几部分的条形纸上,每种结果占总长度的一部分。
所占部分与选中结果的概率相等。做选择就是选取条形纸长度上的随机点(比如说扔飞镖),然后看看它落在哪个部分。

在这里插入图片描述

1.在脚本中,条形纸实际上是一个浮点数组,按顺序包含项目的不同概率。随机点由 Random.value 乘以数组中所有浮点总数得出(它们合计起来不一定等于 1;重点是不同值获得的相对大小)。
2.要找出随机点“落在”哪个数组元素,首先检查看它是否小于第一个元素的值。如果是,则将选中第一个元素。否则,从点值减去第一个元素的值,再与第二个元素比较,直到找到正确的元素。类似于下面这个代码:-

function Choose(probs:float[]) {
   
	var total = 0;

	for (elem in probs) {
   
		total += elem;
	
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值