Понедельник, 11 Ноября 2024, 13:08

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Помогите со спавном объектов
R00nyДата: Среда, 05 Апреля 2017, 11:22 | Сообщение # 1
был не раз
Сейчас нет на сайте
У меня есть скрипт. Там новый объект спавнится каждую 0,5 секунду. Но часто происходит так, что один объект появляется на другом. Как сделать, чтобы они не спавнились друг на друге?

public float timer = 0.5f;
public int lives = 3;
public int record;

public GameObject ObjectG;
public GameObject ObjectR;
public GameObject ObjectB;

void Update()
{
int RandNum = Random.Range (1, 100);

float addXPosG = Random.Range(-2.16f, 2.16f);
float addYPosG = Random.Range(-4.25f, 4.25f);

float addXPosR = Random.Range(-2.16f, 2.16f);
float addYPosR = Random.Range(-4.25f, 4.25f);

float addXPosB = Random.Range(-2.16f, 2.16f);
float addYPosB = Random.Range(-4.25f, 4.25f);

Vector3 spawnPosG = transform.position + new Vector3 (addXPosG, addYPosG, 1);
Vector3 spawnPosR = transform.position + new Vector3 (addXPosR, addYPosR, 1);
Vector3 spawnPosB = transform.position + new Vector3 (addXPosB, addYPosB, 1);

timer -= Time.deltaTime;

if (timer <= 0) {

if (RandNum <= 70) {
GameObject ObG = Instantiate (ObjectG, spawnPosG, Quaternion.identity);
Destroy (ObG, 1.5f);

}

if (RandNum > 70 && RandNum < 99) {
GameObject ObR = Instantiate (ObjectR, spawnPosR, Quaternion.identity);
if (ObjectR != null) {
Destroy (ObR, 1.5f);

}
}

if (RandNum >= 99) {
GameObject ObB = Instantiate (ObjectB, spawnPosB, Quaternion.identity);
if (ObjectB != null) {
Destroy (ObB, 1.5f);

}
}

timer = 0.5f;
}
}
BrightSpotДата: Среда, 05 Апреля 2017, 13:34 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
столько рандома... тебя спасет проверка координат на "занятость" и принудительное смещение... в общем код раза в 4 увеличиться... подумай в сторону подготовленных спавн-пойнтов... их "проверить" гораздо проще deal


Более мощный компьютер глючит быстрее и точнее.
R00nyДата: Четверг, 06 Апреля 2017, 10:43 | Сообщение # 3
был не раз
Сейчас нет на сайте
BrightSpot, а можешь дать ссылку на виео-урок или на статью об этом? Ну или просто напиши как гуглить, чтобы найти
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг