93.4409
99.5797
21.04.2024
12:19:58

Как сделать в Instantiate случайное вращение

Чтобы при создании объекта с помощью Instantiate задать случайное вращение в Unity, вы можете использовать следующий код:


using UnityEngine;

public class CreateRandomRotation : MonoBehaviour
{
  public GameObject prefab; // Указать префаб в инспекторе

  private void CreateRandomlyRotatedObject()
  {
    // Создать новый объект на основе префаба
    GameObject newObject = Instantiate(prefab);

    // Генерировать случайное вращение
    Vector3 randomRotation = new Vector3(
      Random.Range(0f, 360f), // случайная угловая ориентация по X
      Random.Range(0f, 360f), // случайная угловая ориентация по Y
      Random.Range(0f, 360f) // случайная угловая ориентация по Z
    );

    // Применить случайное вращение к новому объекту
    newObject.transform.rotation = Quaternion.Euler(randomRotation);
  }

  private void Update()
  {
    if (Input.GetKeyDown(KeyCode.Space))
    {
      CreateRandomlyRotatedObject();
    }
  }
}

В этом коде мы:

  1. Создаем новый объект на основе указанного префаба с помощью Instantiate .
  2. Генерируем случайные углы вращения для каждой из осей (X, Y и Z) с использованием Random.Range .
  3. Применяем случайное вращение к новому объекту с помощью Quaternion.Euler .

Теперь, при нажатии клавиши Space, будет создаваться новый объект с случайным вращением. Убедитесь, что вы указали ваш префаб в инспекторе для переменной prefab .

28.09.2023 01:59

Лента статей

Наверх