在学习游戏开发中需要获取一个数据类型的随机值是非常常见的事情,但当需要对某个枚举类型返回一个随机值,虽然枚举型是值类型,但它并不符合Random.range()函数可接受的参数类型。
枚举类型包含自己的值,类似于给一个整型添加了一个别名,每个别名对应一个整型数并且按升序排列。
因此解决的思路是将取出所需要随机取值区间的左右边界所对应的枚举值,
进行int类型转换,然后放进Random.range()函数进行随机取值,并将这个随机值再转换回原先的枚举型。
public enum test
{
one,
two,
three
}
public test GetRandomTest()
{
int i = Random.Range(0, 3);
test t_test = (test)i;
return t_test;
}