- Home /
OnTriggerEnter not firing
I have this really weird thing going on here..
https://www.youtube.com/watch?v=oJ5IPOtEe4M
I have these feet that stay in the same place except jumping (technically it's going backward, but whatever). It's suppose to avoid the cracks by jumping. The cracks have an OnTriggerEnter function where if it detects the boots colliding with itself, it is then game over.
But for some reason it only does that if I land on it when I'm jumping, not when it goes right through it due to an Animation moving the cracks.
It's weird, no detection is happening and it feels like a physics glitch and it's not my end of the problem. And through the video you can see that the boots are clearly hitting the cracks when it's sliding too.
The boots have a no-trigger box collider and a rigidbody, and the cracks have a trigger-enabled box collider and the OnTriggerEnter script.
Answer by JusticeAShearing · Jul 06, 2014 at 04:05 PM
Hmm... bizarre problem.
Try my movement script, and take a look at this tutorial which involves range detection, and see if it is any better. I hope that it helps, but I am doubtful, since I've never seen this before.
Movement.js:
var speed : float = 6.0;
var twiceSpeed : float = 10.0;
var jumpSpeed : float = 8.0;
var gravity : float = 20.0;
var rotateSpeed : float = 3.0;
private var moveDirection : Vector3 = Vector3.zero;
function Update() {
var controller : CharacterController = GetComponent(CharacterController);
if (controller.isGrounded) {
//Grounded, so recalculate
//Move directly from axes
moveDirection = Vector3(0, 0, Input.GetAxis("Vertical"));
//Rotation Code
transform.Rotate(0, Input.GetAxis("Horizontal") * rotateSpeed, 0);
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
if (Input.GetButton ("Jump")) {
moveDirection.y = jumpSpeed;
}
//Animation Code
if (Input.GetKeyDown("w"))
{
animation.Play("Full Walk");
}
else if (Input.GetKeyUp("w"))
{
animation.Stop();
animation.Play("Idle");
}
}
//Apply Gravity
moveDirection.y -= gravity * Time.deltaTime;
//Move Controller
controller.Move(moveDirection * Time.deltaTime);
}
Tutorial: https://www.youtube.com/watch?v=KotIJMYQ7Dw∈dex=27&list=PLB4DA4F8BDC3B82EE
Your answer
![](https://koobas.hobune.stream/wayback/20220613153400im_/https://answers.unity.com/themes/thub/images/avi.jpg)