I have collision detectors on both of the objects and they are Is Trigger’d and they do not collide with this script:
var inputVector : Vector3 =
Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
transform.Translate(inputVector * Time.deltaTime * 10);
Assuming that it does not give it time to collide, how do i fix it? Also, I have all appropriate colliders for each object. It’s a capsule character and boxes as objects. Also when i get ar the center sometimes i can get it to shoot me down violently until the gravity takes notice that i have jumped through the baseplate.
When you move things with Translate, collisions aren’t detected - the object must be a CharacterController or a Rigidbody and be moved with the appropriate instructions for the collision system to work properly.
If the object you want to move is a CharacterController, you must use Move or SimpleMove to move it:
var inputVector : Vector3 =
Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
GetComponent(CharacterController).SimpleMove(inputVector * 10);
If the object is a rigidbody, you can simulate a SimpleMove like this:
var inputVector : Vector3 =
Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
rigidbody.velocity = Vector3(inputVector*10, rigidbody.velocity.y, inputVector*10);
This keeps the vertical velocity, what preserves the gravity action.
NOTE: Colliders with Is Trigger checked become triggers: you must use OnTriggerEnter/Stay/Exit events; if Is Trigger is unchecked, you must use OnCollisionEnter/Stay/Exit events.