2016-11-15 3 views
-2

У меня есть список разных персонажей, три из которых случайным образом выбираются каждый раз, когда я запускаю программу. Если мои функции выглядеть следующим образом (с каждой строкой в ​​списке ссылок на эти функции)Могу ли я ссылаться на значения случайной функции со списком?

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); } 

и мне нужно сложить значения ловкости каждого персонажа, как бы я идти о выполнении этого?

+0

Список строк? не список функций? – BugFinder

ответ

0

Вы можете сделать это несколькими способами, во-первых, вы можете использовать возвращаемые типы - вместо void вы можете установить способ иметь тип, чтобы вернуться как int

Предполагая, что вы настраиваете в 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; 

В качестве альтернативы можно использовать реф переменную в методе

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; 

Наконец, вы можете также использовать на переменную, доступ к которой осуществляется по каждому метод, который, как представляется, заключается в том, как вы пытаетесь это сделать

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(), а затем называть его три раза вместо трех методов и вызывать их по отдельности.

+0

все это хорошие ответы, но я не думаю, что это сработает для того, что мне нужно, им жаль, что я все еще новичок в этом, поэтому им очень плохо при объяснении. дело в том, что у меня всего десять персонажей, и каждый из них должен иметь рандомизированную статистику (маневренность - это тот, с кем я работаю прямо сейчас). после того, как все они рандомизированы, мне нужно случайно выбрать трех персонажей, а затем добавить их гибкость вместе. моя главная проблема в том, что я не могу полагаться на тех же трех персонажей, которые выбираются каждый раз, поэтому я не уверен, как настроить все. – Steph

Смежные вопросы