我可以用列表引用随机函数的值吗?



我有一个不同字符的列表,其中三个字符是每次运行程序时随机选择的。如果我的函数看起来像这样(列表中的每个字符串都引用这些函数)

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(),然后调用它三次,而不是有三个方法,分别调用它们。

最新更新