• 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 antiquote · Jan 15, 2016 at 03:31 PM · 2dvector3anglevector2relative

Problem with Vector2/Vector3.Angle?

Hello,

I have a 2D game that I'm working on and for each direction (North, South, East and West, and all the cardinal directions in between) there is a sprite, and I switch between these sprites using a switch. I have two methods for determining the direction it should be facing. One is using the Axis input and the other is the angle between the player character and the mouse. However, when I get these angles it seems to only measure the angle from the origin of the world and wherever my mouse happens to be, as opposed to relative to my player character, which has had me stuck for a few hours switching between both Vector Angle methods and a few mouse to world position techniques like a ray and ScreenToWorldPoint.

Here's what I have at the moment:

 public class AnswersScript : MonoBehaviour {
 
     Vector2 mouseWorldPoint;
     float angle;
 
     void Update () 
     {
         
         //Camera is stationary on runtime at the moment.
         //Angle is found of origin and mouseWorldPoint.
         //Gizmo was used to show line between these points, which shows that positions are correct.
         mouseWorldPoint = Camera.main.ScreenToWorldPoint( Input.mousePosition );
         angle = Vector2.Angle( transform.position , mouseWorldPoint );
 
         //Contains ranges of angles so direction can be set. This works fine.
         //Direction is represented by an int.
         MouseDirection();
 
         //Contains switch of direction to set sprite according to direction
         //This also works.
         SetDirection();
     
     }
 }
Comment
Add comment · Show 1
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 hexagonius · Jan 15, 2016 at 03:43 PM 0
Share

relative to what do you want to measure? should above the character return 0 degrees and below 180? is the character constantly in the center of the screen?

0 Replies

· Add your reply
  • Sort: 

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

58 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

Related Questions

Vector question 0 Answers

Get angle between a position and facing direction 0 Answers

Feild of view only wokring in specific areas of the scene 0 Answers

Having trouble with Vectors 1 Answer

C# How can create a list of floats from different types of structs? 0 Answers

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