Casa > C > Como Instanciar E Destruir Um Objeto De Jogo Em Unidade

Como instanciar e destruir um objeto de jogo em Unidade

Existem duas funções embutidas para isso em Unidade, para instanciar existe uma função chamada Instanciação, que basicamente tem três parâmetros (no mínimo, ignorando outras sobrecargas se houver): objeto de jogo a ser desovado, Vetor3 definindo onde desovar o objeto (no espaço mundial), e rotação do objeto quando ele é desovado (espaço mundial). O código é algo assim, digamos que queremos desovar um objeto do jogo no início do jogo

ObjetoToSpawn;

void Start()
{

Instantiate(objectToSpawn, Vector3.zero, Quaternion.identity);
}

Here Vector3.Zero é um atalho para um Vector3 com valores (0f, 0f, 0f). Quaternion.identity é o mesmo, mas para rotação, um quaternion dizendo (0f, 0f, 0f, 0f)

Isto basicamente significa que quando o jogo começa (e o objeto no qual o script está sentado está ativo), ele irá gerar o gameobjeto chamado objectToSpawn (temos que configurá-lo para um objeto do jogo no inspetor do editor de unidades), no centro do mundo, com 0 ou rotação padrão.

Destroy também tem uma função embutida, que é realmente simples de usar. Basicamente, ele aceita um objeto de jogo, e destrói isso, remove isso de cena! Digamos que queremos destruir um objeto do jogo que definimos no início do jogo :

GameObject objectToDestroy;

void Start()
{

Destroy(objectToDestroy);
}

Isso funciona no instante em que o jogo começa, mas se quisermos algum atraso antes de destruir o objeto do jogo, há uma sobrecarga para o método Destroy também, que leva um objeto do jogo e um flutuador, então não precisamos usar nenhuma solução especial como IEnumerators :

GameObject objectToDestroy;

void Start()
{

Destroy(objectToDestroy, 2f);
}

This will promptly the game object defined, 2 seconds after the game starts.

Hope you found this helpful!

De Petersen

Como é que uma televisão se pode ligar sozinha? :: Qual é o primeiro jogo de vídeo que você se lembra de jogar?