- Home /
colliders not colliding right
i have a small spaceship with a box collider on it and then a massive spaceship thats about 300x bigger with about 8 box colliders because its not very square.
if i fly my small spaceship into the big one it goes through and doesnt collide. i am using transform.Translate to move, do i need to use rigidbody.velocity? also i put in a cube the size of the smaller spaceship and when i flew into it nothing happened
this is the script im using to move
var forwards : float = 0;
var turn : float = 0;
var updown : float = 0;
var maxspeed = 16;
var $$anonymous$$speed = -8;
var maxturn = 270;
var $$anonymous$$turn = -270;
var maxupdown = 90;
var $$anonymous$$updown = -90;
function Update () {
transform.Translate(Vector3.forward * Time.deltaTime * forwards);
transform.Rotate(Vector3.forward * Time.deltaTime * turn);
transform.Rotate(Vector3.right * Time.deltaTime * updown);
if(Input.Get$$anonymous$$ey("w"))
forwards += 0.2;
if(Input.Get$$anonymous$$ey("s"))
forwards -= 0.2;
if(Input.Get$$anonymous$$ey("right"))
turn -= 5;
if(Input.Get$$anonymous$$ey("left"))
turn += 5;
if(Input.Get$$anonymous$$ey("up"))
updown += 5;
if(Input.Get$$anonymous$$ey("down"))
updown -= 5;
if(Input.Get$$anonymous$$ey("e")){
turn /= 1.1;
updown /= 1.1;
}
if (forwards >= maxspeed)
forwards = maxspeed;
if (forwards <= $$anonymous$$speed)
forwards = $$anonymous$$speed;
if (turn >= maxturn)
turn = maxturn;
if (turn <= $$anonymous$$turn)
turn = $$anonymous$$turn;
if (updown >= maxupdown)
updown = maxupdown;
if (updown <= $$anonymous$$updown)
updown = $$anonymous$$updown;
}
Answer by syclamoth · Jan 20, 2012 at 01:13 AM
Transform.Translate doesn't actually use physics. You need both a rigidbody and a collider to use inbuilt collision detection, and the rigidbody must use actual physics rather than be kinematic. If you are setting the velocity every frame, you will experience unusual, non-physical behaviour.
Your answer
Follow this Question
Related Questions
nothing happens on collision ever 1 Answer
Make AI run from Player 1 Answer
Slow down object about to collide 1 Answer
Colliders 2d apparently touch each other even if they should not. 2 Answers
spawning on collision 1 Answer