我可以用列表引用随机函数的值吗?
本文关键字:函数 随机 列表 引用 我可以 | 更新日期: 2023-09-27 18:18:02
我有一个不同字符的列表,其中三个字符是每次运行程序时随机选择的。如果我的函数看起来像这样(列表中的每个字符串都引用这些函数)
public void Character1()
{ agility = UnityEngine.Random.Range(1, 3); }
public void Character2()
{ agility = UnityEngine.Random.Range(1, 3); }
public void Character3()
{ agility = UnityEngine.Random.Range(1, 3); }
,我需要把每个角色的敏捷值加在一起,我该怎么做?
您可以通过几种方式做到这一点,首先您可以使用返回类型-而不是void
,您可以设置一个方法具有返回类型,如int
假设您每次都设置一个名为agility的int值,您可以单独存储每个值。
public int agility1;
public int agility2;
public int agility3;
public int Character()
{ return UnityEngine.Random.Range(1, 3); }
你可以调用这个方法三次。
agility1 = Character();
agility2 = Character();
agility3 = Character();
int totalAgil = agility1 + agility2 + agility3;
或者你可以在方法
中使用ref变量public void Character(ref int agil)
{ agil = UnityEngine.Random.Range(1, 3); }
可以这样使用
Character(ref agility1);
Character(ref agility2);
Character(ref agility3);
int totalAgil = agility1 + agility2 + agility3;
最后你还可以使用on变量,每个方法都可以访问它,这似乎就是你想要做的
public int agility = 0;
public void Character()
{ agility += UnityEngine.Random.Range(1, 3); }
//after three calls agility will be between 3 and 9
最后需要注意的是,您可能应该研究一下方法是如何使用的,您有三个相同的方法,除了它们的名称之外,它们在代码中没有什么不同——这破坏了拥有方法的目的。你可以有public void Character()
,然后调用它三次,而不是有三个方法,分别调用它们。