Створення об'єкта на основі збірного матеріалу зі сценарію

Сторінка оновлюється :
Дата створення сторінки :

Середовище перевірки

Вікна
  • вікна 11
Редактор єдності
  • 2021.3.3f1
Пакет системи введення
  • 1.3.0

Передумови для цієї поради

Наступні настройки були зроблені заздалегідь як передумова для опису цієї поради.

Створення об'єкта на основі збірного матеріалу в сценарії

У попередніх Підказках ми розмістили об'єкти від Prefab до виду, але в цьому випадку розміщуємо заздалегідь задану кількість об'єктів і запускаємо гру. Однак деякі ігри можуть захотіти динамічно додавати об'єкти під час гри. У такому випадку вам доведеться додати його з збірки в скрипт.

створення зразка

Після розгортання нового проекту розмістіть кнопку. Спробуємо генерувати об'єкт з збірного матеріалу кожен раз, коли ми натискаємо кнопку.

Створіть префаб. Це та ж процедура, що і попередні поради.

Створіть сценарій для додавання об'єкта під час наступного натискання кнопки. ButtonEvent Залиште ім'я як .

using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
  [SerializeField] private GameObject SpritePrefab;

  public void OnClick()
  {
    // Instantiate にプレハブを渡すとそれをもとに新しいオブジェクトを生成する
    var obj = Instantiate(SpritePrefab);

    // 配置位置はランダムに
    obj.transform.localPosition = new Vector3(Random.value * 6 - 3, Random.value * 6 - 3);
  }
}

GameObject Визначте поле таким чином, щоб ви могли заздалегідь встановити, який збірний збір потрібно створити.

Instantiate Можна передати метод створення GameObject нового об'єкта на основі цього об'єкта.

Позиція створеного об'єкта стає початком, і незалежно від того, скільки об'єктів створено, об'єкти перекриваються і це важко зрозуміти, тому позиція встановлюється випадковим чином після створення. Значення коригування позиції є доречним, оскільки це зразок.

Прикріпіть скрипт до EventSystem.

GameObject встановлено, тому скиньте збірний збір сюди.

При натисканні кнопки викликається OnClick метод.

зразок виконання

Після створення запустіть гру та натисніть кнопку. Кожне клацання має генерувати об'єкт.

Звичайно, оскільки він генерується на основі префабу, якщо значення збірки змінюється, генерований об'єкт буде генеруватися відповідно до цього значення.