• 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 ExtraFlash · Jul 30, 2017 at 05:02 PM · directiondistancemousepositionmax

Allow to move object by the mouse position without missing any collisions

I move my object by mouse position and the problem is that if i move my mouse too fast, the object will follow it and miss collisions with other objects. My solution is to set a max distance and check if the distance between the last position and the current position is greater than max, the distance between them will be equal to max , so the object wont be able to move too fast but will still follow the mouse position. For example: the last position is (1,2) and the current position is (8,5), max distance is 1, i need to get the distance and check if its greater than 1, if it is, the current position will be changed so the distance between the 2 points will be 1 (only the current position will be changed). The only problem is that I dont know how to do that and I need help.

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
2

Answer by ExtraFlash · Aug 02, 2017 at 12:03 AM

Eventually I solved it by using Vector2.MoveTowards() Here is the script:

 public GameObject theObject;
 float limitedDistance=1;
 Vector2 currentPosition;
 
 void Update()
 {
 currentPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);  //this is the mouse position
 
 float dis = Vector2.Distance(theObject.transform.position,
 currentPosition);   //this is the distance between the mouse position and the gameobject
 
 if(dis>limitedDistance)
 dis=limitedDistance;  // if the distance is greater than the max distance, the distance will be equal to the max distance
 
 theObject.transfrom.position=Vector2.MoveTowards(theObject.transfrom.position, currentPosition, dis);
 }



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

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

69 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

Related Questions

Getting the distance in a known direction 2 Answers

Make player follow mouse position 3 Answers

Point an arrow at the mouse position, 2.5D 1 Answer

Help with launching object in direction 1 Answer

Shooting at mousePosition 1 Answer

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges