Criar um objeto com base em um Prefab a partir de um script
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.