我们可以通过Random.Range方法结合权重来实现随机选择。具体步骤如下:
-
首先,创建一个数组,其中包含你要选择的项目,并为每个项目分配一个权重值。
-
计算所有权重值的总和。
-
使用
Random.Range生成一个介于0和总权重之间的随机数。 -
遍历数组,并将随机数逐渐减去每个项目的权重值,直到找到最后一个权重导致随机数变为负数的项目。
-
返回所选项目。
所以具体的代码为
using UnityEngine;
public class WeightedRandom : MonoBehaviour
{
// 定义一个包含游戏对象和权重的内部类
[System.Serializable]
public class WeightedObject
{
public GameObject gameObject; // 游戏对象
public float weight; // 权重
}
public WeightedObject[] weightedObjects; // 存储带权重的游戏对象数组
private float totalWeight; // 所有对象的总权重
private void Start()
{
CalculateTotalWeight(); // 在启动时计算总权重
}
// 计算所有对象的总权重
private void CalculateTotalWeight()
{
totalWeight = 0f;

1532

被折叠的 条评论
为什么被折叠?



