- Home /
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.
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);
 }
Your answer
 
 
             Follow this Question
Related Questions
How to calculate direction between 2 objects 2 Answers
[2D] Object at X distance to Y direction from point 1 Answer
Raycast Hit Question 1 Answer
Lerp in direction to certain distance 3 Answers
Top-Down Enemy Ai Animation 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                