Случайное появление объекта (Unity 2D) - PullRequest
0 голосов
/ 21 марта 2019

Я сейчас создаю игру магната, и у меня есть проблема с тем, как порождать случайные объекты для клиента. это не первый раз, когда я однажды узнал Random Spawning 2 года назад из другого жанра, но в Unity 5.3, если я не ошибаюсь. поэтому я должен начать с нуля снова. поэтому я попробовал обучающее видео, и вот как идет кодирование с небольшой модификацией:

public Text TimerText;
public float LevelTimeLimit;
private bool FullTime = false;

public Text TimerText;
public float LevelTimeLimit;
private bool FullTime = false;

public GameObject[] ObjPrefabs;


[System.Serializable]
public class myPool{
    public string tag;
    public GameObject Customer;
    public int ServiceTime;
}

public List<GameObject> CustomerPool;
public Dictionary<string, Queue<GameObject>> PoolDictionary;

public GameObject GetCust(string type)
{
    for (int i = 0; i < ObjPrefabs.Length; i++)
    {

        GameObject newObject = (GameObject)Instantiate(ObjPrefabs[i]);
        newObject.SetActive(false);
        CustomerPool.Add(newObject);

    }

    return null;
}

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

1 Ответ

0 голосов
/ 21 марта 2019
for (int i = 0; i < ObjPrefabs.Length; i++)
{

    GameObject newObject = (GameObject)Instantiate(ObjPrefabs[i]);
    newObject.SetActive(false);
    CustomerPool.Add(newObject);

}

этот код порождает каждый из префабов в списке.если вы хотите создать случайный префаб из списка, попробуйте заменить его следующим кодом.

GameObject newObject = (GameObject)Instantiate(ObjPrefabs[Random.Range(0, ObjPrefabs.Length)]);

random.range(0, ObjPrefabs.Length) - выберите случайное число от 0 до ObjPrefabs.Length.

ивозьмите ObjPrefabs элемент в этой позиции.

...