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 ShroomWasTaken · Jun 19, 2016 at 10:46 PM · rotationlookat

Using LookAT causes no rotation at all?

I'm having a problem where I'm using LookAt on a gameObject, to look towards a Vector3 position.

In this case, the world position of the mouse pointer.

I've restricted the rotation to the Z axis, however my GameObject doesn't move at all.

Here's how I'm doing it currently :


On top of file where I define variables :

 [SerializeField]
 private Vector2 aimPoint;
 [SerializeField]
 private Vector3 aimPointInWorld;

In the OnGUI function :

     // Reload the aim-points (in OnGUI since Event is not accessible from update)
     aimPoint = new Vector2(Event.current.mousePosition.x - 8, Event.current.mousePosition.y - 8);
     aimPointInWorld = Camera.main.ScreenToWorldPoint(new Vector2(Event.current.mousePosition.x - 8, Event.current.mousePosition.y - 8));

And this is in the Update function :

     // Player to crosshair rotation
     gameObject.transform.LookAt(new Vector3(0, 0, aimPointInWorld.z));


Why is my 2D sprite not moving at all on any axis?

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 Brijs · Jun 20, 2016 at 07:44 AM

LookAt() method rotates the transform so the forward vector points at target.

You want to rotate sprite around z. But you are trying to make forward to look in z direction.

Forward is already aligned with z so it is looking already in direction you are referencing.

You can use this in update

  transform.rotation = Quaternion.FromToRotation(transform.up, aimPointInWorld - transform.position);

First argument can be as per you requirement(direction in which 2D sprite is facing)

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 ShroomWasTaken · Jun 20, 2016 at 09:32 AM 0
Share

This results in my sprite rotating on x, y and z, and it doesn't look towards the pointer anyways. :/

avatar image Brijs · Jun 20, 2016 at 09:56 AM 0
Share

$$anonymous$$ake aimPointInWorld.z = 0.

If that does not work then refer How to rotate around only z axis of Gameobject (2D)

avatar image ShroomWasTaken Brijs · Jun 20, 2016 at 10:04 AM 0
Share

That did fix one problem, however it seems to be spinning in an inverted direction. If I move my mouse one way, the character will rotate the other way. :<

avatar image saschandroid ShroomWasTaken · Jun 20, 2016 at 11:06 AM 0
Share

Try

 aimPointInWorld.x = -aimPointInWorld.x;

before calculating the direction.

Show more comments

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

How can i rotate an object using LookAt with only 1 axis? 0 Answers

Rotate an object to look at another object on one axis? 5 Answers

How would I add rotation limits to this? 1 Answer

How to translate D3DXMatrixLookAtLH to Unity? 1 Answer

How to object rotate on a single axis towards another object? C# 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