0

更新関数のc#でvector3の変数を宣言しました

    Vector3 position = new Vector3(Random.Range(x, y), 0, 0);

xとyには5-10と20-25の値が必要です。

したがって、値は5、6、7、8、9、10、20、21、22、23、24、25である必要があります

通常、私は与えていました

    Random.Range(-0F,-2F);

しかし、ここでは不可能です。私はこの問題を解決することを知りません。

団結するための組合機能はありますか?

または他の方法???

優しいアイデアと適切な返事を待っています。

前もって感謝します。

4

1 に答える 1

2

数字の配列を作成します5, 6, 7, 8, 9, 10, 20, 21, 22, 23, 24, 25

次に、配列からランダムに番号の1つを選択します。

void Awake()
{
   int[] array = {5, 6, 7, 8, 9, 10, 20, 21, 22, 23, 24};

   int randNum = Random.Range(0, array.Length);
}

編集:私はあなたが数字を1つのセットとして置いているのを見ます、しかしあなたがただセットxとセットyを必要とするならば。それで

Vector3 position = new Vector3(Random.Range(5,11), Random.Range(10, 26), z); 

Random.Rangeは排他的であるため、最後の数値はn+1であることに注意してください。

EDIT2:私のクラスを使用してください。3つの範囲を渡すことができ、ランダムに1つの数値を返します。

using UnityEngine;
using System.Collections;

public class RandomSetGenerator
{   
    public static int generateFromRange(int range1Start, int range1Stop, int range2Start, int range2Stop, int range3Start, int range3Stop)
    {
        List<Integer> randomList = new List<Integer>();

        randomList = addToRandomList(randomList, range1Start, range1Stop);
        randomList = addToRandomList(randomList, range2Start, range2Stop);
        randomList = addToRandomList(randomList, range3Start, range3Stop);

        return randomList[Random.Range(0, randomList.Count)];
    }

    private static List<Integer> addToRandomList(List<Integer> randomList, int startRange, int endRange)
    {
        for(int i = startRange; i <= endRange; i++)
            randomList.Add(i);

        return randomList;
    }   
}
于 2013-02-22T08:09:02.750 に答える