Criar um objeto com base em um Prefab a partir de um script

Página atualizada :
Data de criação de página :

Ambiente de verificação

Windows
  • Janelas 11
Unity Editor
  • 2021.3.3f1
Pacote do sistema de entrada
  • 1.3.0

Pré-requisitos para esta dica

As configurações a seguir foram feitas com antecedência como premissa para a descrição desta dica.

Criar um objeto com base em um Prefab em um script

Nas Dicas anteriores, colocamos objetos do Prefab para a visualização, mas neste caso, colocamos um número pré-determinado de objetos e iniciamos o jogo. No entanto, alguns jogos podem querer adicionar objetos dinamicamente enquanto o jogo está em execução. Nesse caso, você terá que adicioná-lo a partir do pré-fabricado no script.

Criação de amostra

Depois de implantar o novo projeto, coloque o botão. Vamos tentar gerar um objeto a partir do pré-fabricado toda vez que clicarmos no botão.

Crie um pré-fabricado. Este é o mesmo procedimento das dicas anteriores.

Crie um script para adicionar o objeto na próxima vez que você clicar no botão. ButtonEvent Deixe o nome 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 o campo para que você possa definir qual pré-fabricado será gerado com antecedência.

Instantiate Você pode passar um método para criar um GameObject novo objeto com base nesse objeto.

A posição do objeto criado torna-se a origem, e não importa quantos objetos são criados, os objetos se sobrepõem e é difícil de entender, então a posição é definida aleatoriamente após a criação. O valor de ajuste de posição é apropriado porque é uma amostra.

Anexe o script ao EventSystem.

GameObject está definido então solte o pré-fabricado aqui.

Quando o botão é clicado, o método é OnClick chamado.

Exemplo de execução

Uma vez criado, execute o jogo e clique no botão. Cada clique deve gerar um objeto.

Claro, como ele é gerado com base no pré-fabricado, se o valor do pré-fabricado mudar, o objeto gerado será gerado de acordo com esse valor.