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