Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
This post has been wikified, any user with enough reputation can edit it.
avatar image
0
Question by Antipirina · Aug 07, 2013 at 05:14 PM · movementphysicsrigidbodycharactercontrollerclicktomove

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;
 }


Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

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().

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

14 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

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


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges