- Home /
Character moving on x : hits non-perpendicular collider : starts sliding on z?
So I'm using the Character Motor script and Character Controller component. I'm making a 2D platformer so the player is only allowed to move on x and y.
The problem is if there are any collide-able objects in the players path that aren't perfectly perpendicular and the player continues to try to push themselves into them, the player starts sliding on z until they've moved enough to get around it.
I went into the characterMotor and changed the controller.Move calls so that any Vector3's .z = 0 and while that prevented player inputs on z, the sliding problem still happened.
I then tried a hacky route and just had a update / fixedupdate script with transform.position.z = 0 and now the player thinks they're the juggernaut and plows through the colliders.
Any ideas? : /
Thanks for co$$anonymous$$g our timberland online store! Just enjoy yourself here! As a developping company, timberland boots always can give us some surprise .I belive timberland shoes Sale can make your feet more comfortable, make your life more stylish!If you want to have a try ,just click here: discount timberland boots Free delivery
Answer by Creamzsoda · Sep 25, 2011 at 12:56 AM
Well for now, using CharacterController.Move to reset z seems to work. There's a tiny bit of jitter and I'd rather not do it this way if possible, but it works for the moment. I'd still like to know if anyone has a better solution.
private var controller : CharacterController;
function Awake () {
controller = GetComponent(CharacterController);
}
function Update() {
if(transform.position.z > 0 || transform.position.z < 0){
controller.Move(Vector3(0,0,(transform.position.z * -1)));
}
}
Your answer
Follow this Question
Related Questions
Best way to check collisions in a 2D Game? 0 Answers
Button Input not working? 2 Answers
Editing Character Motor 2 Answers
2D Simple movement script (JS) 0 Answers
C# from Unity to Unity iPhone 2 Answers