- Home /
How to make multiple objects mirror Player movement AND share collisions
I have multiple objects that I want to react to player movement (either identically, half speed, reverse, or some other factor).
Based on what I've read and tried so far, neither parenting nor joints will work as those only offer 1:1 movement.
Note that my game is strictly 2D, and that the physics for 2D and 3D are mostly the same.
Basically, when either the player or one of the linked objects hits a wall, I want them ALL to stop.
Answer by Jellezilla · Jan 28, 2014 at 01:37 AM
You could try to use the same input for moving both objects simultaneously. So if one has a script where movement has a certain speed and translates the object in a certain direction, the other object could have a similar script only with different speed and directions. - Or use same script if movement and speed is to be the same.
As for sharing collisions I guess you could keep track of the opposing object's movement state. So basically just check if the other one can move, so can you. It is kind of hard to say, when I don't know how your movement is implemented.
Getting them to move together isn't the hard part. Using Rigidbody2D and syncing their velocity (multiplied by some factor) gets that going quite well. It's getting them to STOP together that's proving difficult.
just check if the other one can move
Easier said than done. How would you propose this be done? Outside of handling collision detection myself.
I'm currently moving the player by setting the velocity of the player's Rigidbody2D based on their input and a variable speed:
this.rigidbody2D.velocity = new Vector2(Input.GetAxis("Horizontal") speed, Input.GetAxis("Vertical") speed);
Your answer
Follow this Question
Related Questions
Unity 4.3 CharacterController collision with physics 2D not working 1 Answer
2D Collider aren't exact? 6 Answers
2D Colliders do not register collision 1 Answer
Limiting Physics to X and Y 5 Answers