Crear un objeto basado en un Prefab a partir de un script

Actualización de la página :
Fecha de creación de la página :

Entorno de verificación

Windows
  • Ventanas 11
Unity Editor
  • 2021.3.3F1
Paquete del sistema de entrada
  • 1.3.0

Requisitos previos para esta sugerencia

Los siguientes ajustes se han realizado de antemano como premisa para la descripción de este consejo.

Crear un objeto basado en un Prefab en un script

En los Consejos anteriores, colocamos objetos del Prefab a la vista, pero en este caso, colocamos un número predeterminado de objetos y lanzamos el juego. Sin embargo, es posible que algunos juegos quieran agregar objetos dinámicamente mientras se ejecuta el juego. En ese caso, tendrás que agregarlo desde el prefab en el script.

Creación de muestras

Después de implementar el nuevo proyecto, coloque el botón. Intentemos generar un objeto a partir del prefab cada vez que hagamos clic en el botón.

Crear un prefabricado. Este es el mismo procedimiento que los consejos anteriores.

Cree un script para agregar el objeto la próxima vez que haga clic en el botón. ButtonEvent Deje el nombre como .

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 Defina el campo para que pueda establecer qué prefab se generará de antemano.

Instantiate Puede pasar un método para crear un GameObject nuevo objeto basado en ese objeto.

La posición del objeto creado se convierte en el origen, y no importa cuántos objetos se creen, los objetos se superponen y es difícil de entender, por lo que la posición se establece aleatoriamente después de la creación. El valor de ajuste de posición es apropiado porque es una muestra.

Adjunte el script a EventSystem.

GameObject está configurado, así que suelte el prefabricado aquí.

Cuando se hace clic en el botón, se OnClick llama al método.

Ejecución de ejemplo

Una vez creado, ejecuta el juego y haz clic en el botón. Cada clic debe generar un objeto.

Por supuesto, dado que se genera en base al prefab, si el valor del prefab cambia, el objeto generado se generará de acuerdo con ese valor.