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 Toast3y · Mar 07, 2014 at 02:28 PM · spriteraycasthitcoordinatescalculations

Calculating position on a sprite on raycasthit

I have a 8x8 grid sprite (each square is a perfect 100x100 pixel box) that the player uses as a map in-game to move around in relative game coordinates. The player will click on a square in the grid, which is relative to a coordinate in the game world. I need to calculate the position where the player clicked, on this grid, and call a method in C# from this.

How can I do this relative to the grid sprite, once the box collider 2D detects a raycasthit? Is it possible to translate the centre coordinates of the sprite to 0,0, so I can calculate each hit accurately?

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
1
Best Answer

Answer by robertbu · Mar 07, 2014 at 02:41 PM

RaycastHit2D.point is a world point. You can convert it to a local coordinate using Transform.InverseTransformPoint(). If you select your texture/sprite in the Inspector, you will see a setting for 'Pixels to Unit.' The default is 100. So if you have 8 boxes that are each 100 units across, your sprite will be 8 x 8 units in world space.

I'm not sure how you want to map the squares. It might be easiest to use a values system that uses the lower left corner as your starting point (i.e. the lower left corner square would be (0,0) and the upper right corner would be (7,7)). This can be accomplished by either setting the anchor for your sprite as the lower left corner or by adding (4,4) to whatever coordinate you get when you do the Transform.InverseTransformPoint(). Rounding to an int will then give you the i,j indices of your square.

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 Toast3y · Mar 07, 2014 at 03:25 PM 0
Share

This is exactly what I was looking to find out. Thanks for the answer.

Also, that's precisely how the squares will be mapped, but using (1,1) for the end user. Thank you for your help.

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

20 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

Related Questions

unity gameobject to sprite (UI Image) 1 Answer

How to define a point on a sprite, and get that point in world space. 1 Answer

I need help with some grid calculation for a digital board game. 0 Answers

Raycast on sprite in 3D space, how to find texture coordinates 0 Answers

how to convert gps coordinates to unity 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