• 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 /
avatar image
0
Question by Aarav123 · Jan 27, 2017 at 09:42 AM · unity5gameobjects

How to move gameobject with constant speed towards target?

Hi, I am a learner of game development programming and I want to move the game object with constant speed towards target and stop moving once it reaches 1.0, or less, units of distance. I usually search for many php questions and answers & its collaboration with php, which fortunately get resolved in such Q&A forums. So again, I am hoping that some of the tech experts in this community can help to figure out my issue.

class Mover : MonoBehaviour { Vector3 target; float speed;

void Update() {

} }

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

2 Replies

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

Answer by jwulf · Jan 27, 2017 at 11:40 AM

 class Mover : MonoBehaviour {
   [SerializeField]
   Vector3 target;
 
   [SerializeField]
   float speed;
 
   Vector3 dirNormalized;
 
   void Start() {
     dirNormalized = (target - transform.position).normalized;
   }
 
   void Update() {
     if(Vector3.Dist(target, transform.position) <= 1) {
       enabled = false;  // causes that Update() of this MonoBehavior is not called anymore (until enabled is set back to true)
       // Do whatever you want when the object is close to its target here
     } else {
       transform.position = transform.position + dirNormalized * speed * Time.deltaTime;
     }
   }
 }

This is assuming that you simply want to set the speed and the target position in the editor and the target position does NOT change (since the direction is only calculated once initially, in Start()).

PLEASE NOTE: This is only the way to go, if the object you are moving does not have a rigidbody and/or colliders (any "phyics-stuff"). If it does, you should rather use the rigidbody to move it.

Comment
Add comment · Show 1 · 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
avatar image rm-square · Mar 19, 2020 at 08:57 PM 0
Share

Hi, just wanted to add, that it is called Vector3.Distance now, and not Vector3.dist.

avatar image
1

Answer by IgorAherne · Jan 27, 2017 at 10:40 AM

class Mover : MonoBehaviour {

Vector3 target; float speed;

    void Update() {
            Vector3 dir = (target - this.transform.position).normalized; //unit length vector towards target
            this.transform.position = dir*Time.deltaTime; //times deltaTime to make this speed frame-rate independant
    }

}

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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

70 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 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 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 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 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

If i flip the scale from a sprite, how do i make my game object child flip aswell? 0 Answers

Position gameObjects in circle around another gameObject 1 Answer

How to make an object visible only after grabbing other object? 0 Answers

Build WebGL for ChromeBook 1 Answer

Textfield not working over webgl canvas 2 Answers


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