3
respostas

Vector3. forward, como assim o pra frente da Unity?

tem o Vector3. forward e o transform.forward.

o transform.forward é o pra frente do objeto em que o script do código está.

o Vector3. forward tem a mesma ideia que o transforme. forward, só que o vector3.forward é o pra frente da Unity e isso eu não entendi. pelo motivo de ambos os códigos parecerem ter o mesmo sentido

3 respostas

Oi, Victor, tudo bem?

Faz um teste assim vira o seu personagem para o outro lado juntamente com a câmera e você vai ver que o código do transform.forward continua funcionando porque ele é relativo ao personagem. Com o Vector3.forward o personagem apertando W moveria para trás.

Eles só tem o mesmo sentido nesse caso porque o nosso personagem está apontado para o Z da Unity também (você pode ver isso pelo Gizmo no lado direito do painel de Cena), mas isso pode mudar e seu código tem que saber lidar com essas mudanças básicas sem quebrar o tempo todo.

poderia dar uma explicação mais simples por favor? e que tenho deficit de atenção então preciso das coisas bem explicadas, desculpa o incomodo.

Não sei Unity, mas pelo visto:

Vector3.forward retorna um Vector cujos atributos são:

X: 0
Y: 0
Z: 1

Só que esse vector é relativo ao mundo do jogo... por ex: Vector.up (X: 0, Y: 1, Z: 0) vai ser sempre um vector apontando pro céu...

Transform.forward é relativo a um corpo específico. Ex: para a direção de um balão subindo, Transform.forward (relativo ao corpo) seria equivalente ao Vector.up (relativo ao mundo).

Isso significa que o balão movimenta-se para frente em relação a si mesmo, e para cima em relação ao mundo.

Então o Transform.forward (direção) de um balão subindo tem os atributos:

X: 0
Y: 1
Z: 0