Unityでゲームを作っている者です。
指定した数字(今回の場合は50と-50)をランダムに取得するプログラムを自分で作ってみたのですが、
少し長いのでこのプログラムをもう少し短くする方法を教えていただけませんでしょうか?
C#
1 [SerializeField] 2 int countrange = 0; 3 [SerializeField] 4 int xcount = 0; 5 [SerializeField] 6 int ycount = 0; 7 [SerializeField] 8 int zcount = 0; 9 10 void Update () 11 { 12 countrange = Random.Range(0, 1); 13 if (countrange == 0) 14 { 15 xcount = -50; 16 } 17 else if (countrange == 1) 18 { 19 xcount = 50; 20 } 21 countrange = Random.Range(0, 1); 22 if (countrange == 0) 23 { 24 ycount = -50; 25 } 26 else if (countrange == 1) 27 { 28 ycount = 50; 29 } 30 countrange = Random.Range(0, 1); 31 if (countrange == 0) 32 { 33 zcount = -50; 34 } 35 else if (countrange == 1) 36 { 37 zcount = 50; 38 } 39 }
どなたか教えてください。
よろしくお願いします<(_ _)>
ランダムで -50 か 50 のどちらかを返すメソッドを作ったらどうでしょうか。
そのメソッドがたとえば int PlusMinusFifty() という名前だとすると、次のようにできます。
xcount = PlusMinusFifty();
ycount = PlusMinusFifty();
zcount = PlusMinusFifty();
また、0 を -50 に、1 を 50 に変換するには、if 文を使わずとも countrange * 100 - 50 でできます。
教えていただきありがとうございます
つまりはこういうことでしょうか?
void CountFifny()
{
countrange = Random.Range(0, 1) * 100 - 50;
}
void Update ()
{
CountFifny();
xcount = countrange;
CountFifny();
ycount = countrange;
CountFifny();
zcount = countrange;
}
void ではなく int で返してください。
return Random.Range(0, 1) * 100 - 50;
そうすれば直接代入できます。
xcount = CountFifty();
ありがとうございます!
かなり短くなりました!
回答1件
あなたの回答
tips
プレビュー