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 /
avatar image
0
Question by Teemo · Jan 16, 2015 at 05:27 PM · 2dlerpvector2coordinatesmovetowards

How to get click position in Vector 2 ?

In my 2D game, I want to move my player (sprite) to the click location, by Lerp or MoveTowards. I actually may know how to use Lerp or MoveTowards, but can someone help me on finding these coordinates ? I tried a lot of things, like function OnMouseDown, Raycast etc. but I couldn't make it work properly. I work in javascript.

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

Answer by RedHedZed · Jan 16, 2015 at 06:57 PM

You can use Input.mousePosition to get the mouse coordinates and save them to a Vector2. You can then use Camera.ScreenToWorldPoint to convert those coordinates to world space in order to Lerp your player.

Comment
Add comment · Show 5 · 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 Teemo · Jan 16, 2015 at 09:14 PM 0
Share

Thank you for the comment, I tried it but it seems not to work. I tried with both GetButtonDown("Fire1") and Get$$anonymous$$ouseButtonDown(0):

  #pragma strict
     var speed : float = 2f;
     public var worldPos:Vector3;
     public var target : Transform;
     public var cameraloc:Camera;
     
     function Start () {
     
     }
     
     function Update () {
     var mousePos:Vector3;
     cameraloc = GameObject.Find("Camera").GetComponent(Camera);
     mousePos = Input.mousePosition;
     worldPos = cameraloc.ScreenToWorldPoint(mousePos);
     }
     
     if (Input.GetButtonDown ("Fire1")) {
       Debug.Log("$$anonymous$$ove!");
       transform.position = Vector3.$$anonymous$$oveTowards(target.position, worldPos, speed);
     
     }
     
 


avatar image HYPERSAVV · Jan 16, 2015 at 09:19 PM 0
Share

That if statement is never reached (you placed it outside of the Update function). And since you only care when the button is pressed, you can move the logic for getting the mouse position inside of the if statement as well.

avatar image Teemo · Jan 16, 2015 at 09:32 PM 0
Share

Yes, you are right, I missed that one. $$anonymous$$now my object moves but not how I want. When I click, the object teleports (doesn't move how it is supposed to from $$anonymous$$oveTowards) for a portion of the length. So, If I click 5 times on my location, only then the object will reach it. What now ? I will paste the current update of the code:

 #pragma strict
 var speed : float = 2f;
 public var worldPos:Vector2;
 public var target : Transform;
 public var cameraloc:Camera;
 
 function Start () {
 
 }
 
 function Update () {
 var mousePos:Vector2;
 cameraloc = GameObject.Find("Camera").GetComponent(Camera);
 mousePos = Input.mousePosition;
 worldPos = cameraloc.ScreenToWorldPoint(mousePos);
 
 
 if (Input.GetButtonDown ("Fire1")) {
   Debug.Log("$$anonymous$$ove!");
   transform.position = Vector3.$$anonymous$$oveTowards(target.position, worldPos, speed);
    }
 }
 
avatar image Teemo · Jan 17, 2015 at 07:15 PM 0
Share

Bump. It's still the same problem.

avatar image tanoshimi · Jan 17, 2015 at 07:20 PM 0
Share

Because that's what you've written - "when the mouse button is clicked, move 2 units in the direction of the target". What did you mean to happen?

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Moving 2D sprite along a path 0 Answers

Find cardinal direction of collision based on 2D Cartesian coordinates 1 Answer

conserve momentum of vector3.moveTowards in 2D game 0 Answers

Moving an UI element from point A to point B 1 Answer

My vector2.movetowards is 2-3x faster when trigger off and trigger on collider collides 0 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