Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
  • Help Room /
avatar image
0
Question by mollermanden · Jan 05, 2016 at 12:18 PM · 2dpositiontexture2dnewbiepointer

Get local position of pointer on scaled texture (2D)

I have a GameObject with a SpriteRendere. On startup (in Start()) a 1024x768 pixels Texture2D will be created and attached as the sprite in the SpriteRendere. The pivot of my texture is to (0.5, 0.5) så it scales around the centre of the screen.

While the scale of the GameObject is (1.0, 1.0) I have no problem on detecting the mouseposition on the texture as it's size is equivalent to the size of the screen. However, when I scale the GameObject, and thereby the texture, I can't figure out how to get the position locally in the GameObject.

Q: How do I translate the mouse position in the screen space to the x-y-coords of the GameObject when it is scaled to stretch beyond the screen and you therefore only see a portion of the GameObject?

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 mollermanden · Jan 20, 2016 at 07:50 AM

I happend to solve this myself using the Transform.inverseTransform() method.

As I am using the EventSystem I use the eventData.position to get the pointer position and then the below line of code translates the pointerposition to local coordinates on my texture which seems to work no matter where the texture is positioned or how it's scaled. Note that the position is translated to world coords before it's translated to local coords.

Vector3 localPosition = transform.InverseTransformPoint(Camera.main.ScreenToWorldPoint(pointerPosition));

A more complete example:

 public void OnPointerDown(UnityEngine.EventSystems.PointerEventData eventData) {
     this.logPosition(eventData.position);
 }
 
 private void drawPixel(Vector2 pointerPosition) {
     Vector3 localPosition = transform.InverseTransformPoint(Camera.main.ScreenToWorldPoint(pointerPosition));
   Debug.Log(localPosition);
 }






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

55 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

Related Questions

[SOLVED] Problems creating a Sprite through script 0 Answers

how do i make my character float down? 0 Answers

Shader Graph: How do I rotate a texture that is part of a larger texture? 0 Answers

Noob question about 2D graphic drawing system 0 Answers

Which version of Unity is more suitable for a pure 2D mobile game for a newbie? 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