Para criar novos objetos em tempo de execução, isto é, enquanto o jogo está rodando, utiliza-se a função Instantiate, que cloca e retorna esse clone criado do gameObject passado à ela.
Esse métodos tem várias assinaturas,sendo a mais comum a seguinte:
Instantiate(original: Object, position: Vector3, rotation: Quaternion): Object;
O código acima diz que o método Instantiate recebe três parâmetros, o primeiro é um gameObject, o objeto que será clonado, o segundo parâmetro é uma variávelde Vector3, que indica a posição que esse objeto será instanciado e a terceira, qual a rotação nos três eixos. E tudo isso, no caso o objeto criado, retornará em um objeto.
Consufuso? Vamos lá então
public var prefab: Transform;
function Start() {
for (var i: int = 0; i < 10; i++) {
Instantiate(prefab, new Vector3(i * 2.0F, 0, 0), Quaternion.identity);
}
}
O código acima, não necessita alterar valor do objeto, sendo assim usa apenas o Instatiate, sem atribuir ele a uma variável.
Acima ´tem-se um código que instancia/cria 10 gameObjet do tipo prefab a partir da posição Vector3(0, 0, 0), de 2 em 2 no eixo X. Ou seja ao executar o código acima você terá uma cópia do objeto prefab na posição (0,0,0), outro na posição (2,0,0), (4,0,0) e assim por diante, até ter 10 objetos, ja que o laço de repetição for vai de 0 até menos que 10.
O Quaternion.indentity faz com que nossos objetos criado tenham a rotação zerada, ou seja, todos os eixos de rotação serão 0.
Comentários
Postar um comentário