vodimak
@vodimak

Как сделать так, что-бы объект не спамился на другом объекте?

есть проблема, иногда заспамился 1 префаб и прямо на него спамится ещё 1. как решить?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RandomSpawn : MonoBehaviour
{
    public GameObject[] prefabs;
    public Vector2 spawnRate;

    private IEnumerator Start()
    {
        while (true)
        {
            yield return new WaitForSeconds(Random.Range(spawnRate.x, spawnRate.y));
            var pos = new Vector2(Random.Range(2, -3), Random.Range(3, -3));
            Instantiate(prefabs[Random.Range(0, prefabs.Length)], pos, Quaternion.identity);
        }
    }
}
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 1
LittleBob
@LittleBob
Можно сохранять все созданные объекты в лист, а потом циклом проходить и сравнивать, не равна ли позиция какого-либо нового заспавненного объекта с уже существующими.

Если равна, то генерировать новую позицию, пока она не станет уникальной.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы