I’m working with some functionality that requires a function to be called as soon as the player character enters a collider. We were originally using OnControllerColliderHit functions, but that only seemed to work with physical colliders, which is causing issues as collision is repositioning him. So I switched to using OnTriggerEnter functionality, however, the OnTriggerEnter function only seems to be called the frame after the player has entered the collider, as is demonstratable by the attached picture, the print functions are called within the OnTriggerFunction, is there any way around this, or anything I should be taking into account that I am not?
I guess the player is still a CharacterController? Have you an additional kinematic Rigidbody attached? Usually the CharacterController doesn’t produce OnTriggerXXX messages.
In this case the problem is that collisions (and triggers) are handled by the physics system. The physics system runs before Update is called, so when you move your player in Update, the collision is detected the next frame when the physics system updates.
You could try to put your movement code in FixedUpdate, but i’m not sure if that really helps, especially because it could make your movement a bit “choppier”.