Случайное создание объектов
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 53 из 67.
Random.Range(min, max) выбирает случайное число, а то, что она может вернуть, зависит от типа чисел, которые ты ей передаёшь. Для чисел с плавающей точкой может получиться любое значение от min до max, включая оба конца диапазона. Для целых чисел само значение max не включается. Поэтому для броска кубика нужно задать диапазон от 1 до 7:
int roll = Random.Range(1, 7); // 1, 2, 3, 4, 5 или 6
Debug.Log("You rolled " + roll);В версии для целых чисел значение max не включается, чтобы Random.Range(0, names.Length) всегда возвращал допустимый индекс массива. Это также означает, что Random.Range(-5, 5) даёт только целые числа от -5 до 4, даже если результат сохраняется в переменную типа float. Напиши Random.Range(-5f, 5f), чтобы получить любое промежуточное значение.
Для точек и направлений в 3D в Unity есть два готовых случайных вектора. Random.insideUnitSphere — это случайная точка внутри шара радиусом 1 с центром в (0, 0, 0). Random.onUnitSphere — это случайная точка на поверхности этого шара, то есть случайное направление длиной 1. transform.position + Random.insideUnitSphere * 2f задаёт точку на расстоянии до 2 единиц в любом направлении, в том числе вверх и вниз.
Задание
СреднеКаждый щелчок должен сбрасывать ящик со случайной точки над полом:
- x и z: любое значение от -4 до 4, не только целые числа;
- y: 5, чтобы ящик упал на пол;
- без вращения.
Нажми Play и щёлкни несколько раз, затем нажми Check.
Попробуйте сами
using UnityEngine;
public class CrateDropper : MonoBehaviour
{
public GameObject cratePrefab;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
// Сбросить ящик из случайной точки: x и z от -4 до 4, y = 5
}
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы скриптинга в Unity
1Ваш первый скрипт
Привет, UnityРазместите кубДвигайте каждый кадрПоворачивайте каждую секундуУправляйте клавишамиПовторение: управляйте кубом2Инспектор
Поля инспектораSerializeFieldЧисла с плавающей точкой и MathfАтрибуты инспектораПовторение: лифт5Преобразования и иерархия
Родители и детиМасштабПосмотри на объектыДвигайся к точкеПовторение: Луна на орбите6Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказать и скрытьПовторение: выключатель света9Префабы и создание объектов
Префабы и InstantiateСоздание объектов по таймеруСоздание объектов в сеткеСписки объектовDestroyСлучайное создание объектовПовторение: фейерверки