- Home /
Click to move a character in a terrain
Hi everyone, I'm working on a point & click game and I'm having issues moving the character.
What I want is the same as here: http://answers.unity3d.com/questions/213152/move-to-clicked-point.html
And with that code I have a character moving around without problems. But when I use a terrain the character does weird things:
Character Controller: if I use this component, the character pass through the elevations, it doesn't care, just continues walking.
Rigid Body: so in the way of fixing that I removed the character controller and put a rigid body with a capsule collider. Now it works colliding with the terrain, but that led me to another problem.
The problem: the character is vibrating on the floor.
So I tried different configurations of the Rigidbody:
Interpolate: interpolate / extrapolate. Works the same.
Is kinematic on: it doesn't collide anymore with the terrain.
Use gravity off: it doesn't vibrate anymore, but when I climb a lift I continue to be up, so I need to fall.
For moving the character I'm using (I don't know if it's related or not):
transform.position = Vector3.MoveTowards(transform.position, targetPosition, Time.deltaTime * speed);
So any suggestion? Thanks!
SOLUTION
So I ended up with the robertbu solution and worked very well: It needs:
Rigidbody: uncheck Use Gravity.
Capsule Collider
And this code in C#
void LateUpdate () {
Vector3 newpos = transform.position;
newpos.y = Terrain.activeTerrain.SampleHeight(transform.position);
transform.position = newpos;
}
Answer by robertbu · Aug 07, 2013 at 05:57 PM
If you are using a character controller, or just an object (i.e. no rigidbody no character controller), you can set the height for your character for a particular point on the terrain using Terrain.SampleHeight().
Your answer
Follow this Question
Related Questions
Turning a rigidbody controller into a character controller (almost) 1 Answer
How to let a GameObject generate force but not be affected by certain forces? 0 Answers
RigidBody immediately stops after AddForce 1 Answer
Character Controller Pushes Car With Wheel Colliders? 0 Answers
Collisions causing Rigidbody to go Haywire and move randomly. 1 Answer