Задать вопрос
@Smart_hub

Как сделать так, что бы объект не спавнился в объекте?

671aaf9596b71661281679.jpeg

Всем привет, застрял на одном моменте, а именно когда создал спавн машин - они иногда спавняться в друг друге, что прям очень бросается в глаза. Я вставил фотографию как это выглядит. Как сделать так, что бы они нормально спавнялись? Код перед вами
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CarSpawn : MonoBehaviour
{
	
	public GameObject Car;
    

    void Start()
    {
        StartCoroutine(Spawner());
    }

    IEnumerator Spawner()
    {
        while (true)
        {
			float rand = Random.Range(87f, 130f);			            
			yield return new WaitForSeconds(2.8f);	
            GameObject newCar = Instantiate(Car, new Vector3(-5.5f, 0.5f, rand), Quaternion.identity);
			
			Destroy(newCar, 20);
        }
    }
  • Вопрос задан
  • 228 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
1. Перед спавном проверять коллизии. Если есть коллизия - выбирать другое место
2. Спавнить по умному - например, по сетке. Или вычислять точку спавна на основе уже имеющихся машин.

У вас же тупой простой рандом - в нем нет никаких логик проверок - поэтому увы
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Unkestory
Задать координаты, нормальные мапперы рандомно не ставят машины, даже если и есть коллизия, у тебя она может появится по среди трассы, слишком много проблем, проще задать каждому транспорту координаты.
Ответ написан
Комментировать
@Alexander_han
Если нужно что бы машины на определенных позициях можно создать лист позиций и исключать используемые варианты.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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