2016-11-15 9 views
-2

私は異なる文字のリストを持っていますが、そのうち3つはプログラムを実行するたびにランダムに選択されます。私の関数は、この(これらの関数に参照リスト内の各文字列で)ランダム関数の値をリストで参照できますか?

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
あなたは、まずあなたが戻り値の型を使用することができ、いくつかの方法でこれを行うことができます

- あなたは毎回敏捷性と呼ばれる整数を設定していると仮定すると、int

のように返すようにタイプを持っている代わりにvoidのあなたが方法を設定することができます各値を個別に保存することができます。

public int agility1; 
public int agility2; 
public int agility3; 

public int Character() 
{ return UnityEngine.Random.Range(1, 3); } 

代わりにこのメソッドを3回呼び出すことができます。

agility1 = Character(); 
agility2 = Character(); 
agility3 = Character(); 

int totalAgil = agility1 + agility2 + agility3; 

別の方法としては、これが最後にあなたもそれぞれによってアクセスされる変数、に使用することができますので、

Character(ref agility1); 
Character(ref agility2); 
Character(ref agility3); 

int totalAgil = agility1 + agility2 + agility3; 

のように使用されるだろう、あなたの方法で

public void Character(ref int agil) 
{ agil = UnityEngine.Random.Range(1, 3); } 

を参照変数を使用することができます方法、それはあなたがそれをやろうとしているように思われる

public int agility = 0; 

public void Character() 
{ agility += UnityEngine.Random.Range(1, 3); } 

//after three calls agility will be between 3 and 9 

最後に、メソッドがどのように使用されているかを調べる必要があります。同じメソッドを3つ持っています。名前とは別のコードでも違いはありません。 public void Character()を持つことができ、3つのメソッドを持つ代わりに3回呼び出して、それぞれ個別に呼び出すことができます。

+0

これらはすべて良い答えですが、私はそれが私が必要なもののために働くとは思っていません。事は私が合計で10文字を持っていて、それぞれが無作為化された統計を持っていなければなりません。彼らの統計が無作為化された後、ランダムに3つのキャラクタを選択し、敏捷性を追加する必要があります。私の主な問題は、毎回同じ3人のキャラクターが選ばれているので、すべてを設定する方法がわからないということです。 – Steph

関連する問題