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 /
avatar image
0
Question by AzzyDude24601 · Mar 12, 2018 at 12:39 PM · transform.positionworldspacetransform.forwardworld space

Trying to position a world space menu in front of the camera whilst ignoring the camera's tilt angle

I am trying to position a menu in front of a player. From searching on this forum, I found the correct way to achieve this is with the below code.

     // player is the Vive headset's camera
     Vector3 playerPosition = player.transform.position;
     Vector3 playerDirection = player.transform.forward;
     Vector3 spawnPos = playerPosition + (playerDirection * 1.5f);
     menu.transform.position = spawnPos;


However I am working in virtual reality, and the transform.forward of my player changes depending on what angle my player's headset is tilted. This affects how close or far away the menu is appearing in front of the player.

For example if the player looks toward the ground instead of straight ahead, the menu spawns very close to them, but if they look straight ahead it spawns further away.

Is there some way to take the direction the player is looking in and grab the horizontal transform.forward, ignoring the precise angle the player is tilted at?

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 AzzyDude24601 · Mar 12, 2018 at 01:53 PM

The solution for me was to create a copy of the player's object and zero the X and the Z on the Quaternion of the player copy's rotation, forcing the copy to look forward horizontally without tilt. Then I simply used the transform.forward of the edited player copy to calculate the position the menu needs to be spawned at.

         GameObject tempPlayer = new GameObject();
         tempPlayer.transform.position = player.transform.position;
         Quaternion tempRotation = player.transform.rotation;
         tempRotation.x = 0;
         tempRotation.z = 0;
         tempPlayer.transform.rotation = tempRotation;
         Destroy(tempPlayer);

         Vector3 spawnPos = player.transform.position + (tempPlayer.transform.forward * 1.5f);
         menu.transform.position = spawnPos;
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

74 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 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

My object is translating with speed but does not stop... 1 Answer

How can I get Rigidbody.MoveRotation to rotate in world space on two axes? 1 Answer

Updating world coordinate according to world points 1 Answer

Move camera along 2 axes in WorldSpace 2 Answers

How do I convert a point in the world to coordinates on a world space canvas? 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