2009-08-01 16 views
2

を実行しますか:は、どのように私は私のコードは私のコードでは、3つの異なる機能の間でランダムにしたいランダム関数

private void BackPack1() 
{ 
    Player.Skin.SetComponent((PedComponent)3, 3, 0); 
} 

private void BackPack2() 
{ 
    Player.Skin.SetComponent((PedComponent)3, 3, 1); 
} 

private void BackPack3() 
{ 
    Player.Skin.SetComponent((PedComponent)3, 3, 2); 
} 

簡単な方法はありますか?

+0

の一つはどうもありがとう、それが動作するようになりまし呼び出して、私はこの機能が正しく動作することができませんでした、作るなぜ私はちょうどこのようなもの – lilmcnessy

答えて

5
private static Random r = new Random(); 

private void BackPack() { 
    int i = r.Next(0,3); 
    Player.Skin.SetComponent((PedComponent)3, 3, i); 
} 

は、あなただけのメソッド呼び出しの最後の引数は変更されたので、私はあなたがその引数をランダム化したかったと想定しました。

+0

を学んでいますランダムオブジェクトは静的ですか?空のコンストラクタは、それに時間ベースの値を代入します。 – MusiGenesis

+1

同時に生成された2つのオブジェクトが同じ 'ランダム'値を生成しないようにするためです。 それは安いです。 –

+0

このコンテキストでは、2つのオブジェクトが同じ値を生成する場合、誰が気にしますか?とにかく3つの可能性しかありません。 – MusiGenesis

3

このコードは、ランダムバックパックX機能

Action[] methods = new Action[] { BackPack1, BackPack2, BackPack3 }; 
Random rnd = new Random(); 
int index = rnd.Next(3); 
Action method = methods[index]; 
method(); 
関連する問題