Как создать появление объектов в случайном месте при старте сцены.
В этом уроке я хочу показать вам как создать скрипт, при помощи которого объекты на сцене будут появляться в рандомном т.е. в случайном месте, при старте сцены.
Для начала подготовим сцену, создадим плоскость, на которой будем размещать наши объекты.
Изменим размеры плоскости, к примеру: 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.
Можем запустить игру и проверить, при запуске сцены объект куб и сфера будут появляться в случайном месте в заданном диапазоне.