Páginas

sábado, 11 de outubro de 2014

Aula 14 EMPURRANDO OBJETOS

EMPURRANDO OBJETOS

Se você jogou "Half-Life", ou outros jogos semelhantes, deve ter se deparado com a situação do vídeo.

Antes de "jogar" nossa demo (que está aí em baixo) leia a lição...
Nós já vimos o uso do "OnTriggerEnter" num objeto para checar sua colisão com outro. Mas, para checar a colisão do avatar (que tem "CharacterController") com um objeto, o mais recomendado é o uso de:
function OnControllerColliderHit (hit : ControllerColliderHit)
no avatar.
Capturando o "hit", podemos trabalhar com hit.gameObject para saber com quem houve a colisão etc.
Um dos "problemas" do CharacterController é que o avatar com ele não "empurra" objetos. Mas podemos resover isso com o script abaiso, acoplado no avatar:
var grandezaEmpurro : float = 2.0;
function OnControllerColliderHit (hit : ControllerColliderHit) {
 var bodyEmpurrado : Rigidbody = hit.collider.attachedRigidbody;

// como só queremos empurrar quem tem rigidbody
 if (bodyEmpurrado == null || bodyEmpurrado.isKinematic)
 return;

//  como não queremos empurrar para baixo
 if (hit.moveDirection.y < -0.3) 
 return;

// A direção do empurro vai ser na horizontal
var direcaoEmpurro : Vector3 = Vector3 (hit.moveDirection.x, 0, hit.moveDirection.z);

// Aplicamos o empurro como uma velocidade dada ao rigidbody do objeto
bodyEmpurrado.velocity = direcaoEmpurro * grandezaEmpurro;
}

Nenhum comentário:

Postar um comentário

Pesquisar