Как создать появление объектов в случайном месте при старте сцены.
В этом уроке я хочу показать вам как создать скрипт, при помощи которого объекты на сцене будут появляться в рандомном т.е. в случайном месте, при старте сцены.
Для начала подготовим сцену, создадим плоскость, на которой будем размещать наши объекты.
Изменим размеры плоскости, к примеру: 50,1,50.

Добавим два объекта сферу и куб, эти объекты и будут появляться на сцене в случайных местах.
Сохраним эти объекты в префаб.

Для отображения сцены можно добавить стандартного персонажа с камерой, а стандартную камеру удалить со сцены.

Добавим пустой объект, на нем будет находиться наш скрипт.

Создадим С# скрипт и назовем его SpownObject, напишем в нем такой код:
using UnityEngine;
using System.Collections;
public class SpownObject : MonoBehaviour
{
public Vector3 center; // координаты центра
public Vector3 size; // координаты в которых будут появляться объекты
public GameObject kub; // наш куб
public GameObject sphere; // сфера
void Start()
{
Spawn();
}
public void Spawn()
{
Vector3 pos = center + new Vector3(Random.Range(-size.x / 2, size.x / 2), Random.Range(-size.y / 2, size.y / 2), Random.Range(-size.z / 2, size.z / 2));
Instantiate(kub, pos, Quaternion.identity); // осуществляем появление объекта в заданных случайных позициях в диапазоне заданных координат
Vector3 pos2 = center + new Vector3(Random.Range(-size.x / 2, size.x / 2), Random.Range(-size.y / 2, size.y / 2), Random.Range(-size.z / 2, size.z / 2));
Instantiate(sphere, pos2, Quaternion.identity);
}
void OnDrawGizmosSelectes()
{
Gizmos.color = new Color(1, 0, 0, 0.5f);
Gizmos.DrawCube(transform.localPosition + center, size);
}
}Добавим этот скрипт на пустышку и переместим в строки kub и sphere наши префабы куба и сферы. Зададим координаты центра 1,1,1. В строке size укажем координаты диапазона, в которых будут появляться объекты, к примеру: 10,0,10.

Можем запустить игру и проверить, при запуске сцены объект куб и сфера будут появляться в случайном месте в заданном диапазоне.










