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 CalebBX · Jul 17, 2017 at 01:34 AM · rotationvrquaternionanglerelative rotation

Set a rotation relative to position between two objects.

I have code can when a joystick is moved an indicator rotates to the direction of the joystick. The indicators location can be moved by pointing the joystick. This is designed for a VR game so that you can point and rotate an indicator to teleport to its location. Like Robo Recall for oculus if anyone has ever played it.

This all works for the most part. However the rotation of the indicator based on the joystick rotates based of global coordinates, not relative to the direction the player is facing.

What i want is when the player moves the joystick to the up position the indicator should be facing the same direction as the player, down the opposite and vice versa.

Sorry I probably didn't explain it properly but here is my code.

  if (Physics.Raycast(ray, out hit, 1 << LayerMask.NameToLayer("Walkable"))) //Fires a ray from the players hand to the ground
         {
             movePosition = hit.point;//used in another function
 
             Vector3 indicatorPosition = hit.point;
             indicatorPosition.y = 0.1f; //sets y to a constant 0.1 so the indicator hovers above the ground
 
             Vector2 thumbstickPos = OVRInput.Get(OVRInput.Axis2D.PrimaryThumbstick); //Gets a vector representation of the oculus touch thumbstick position
             float thumbstickRot = Mathf.Atan2(thumbstickPos.y, thumbstickPos.x) * Mathf.Rad2Deg; //converts vector to angle
 
             moveRotation = Quaternion.Euler(0, thumbstickRot, 0);//creates a quaternion based off that angle
 
 
             moveIndicator.transform.position = indicatorPosition;//moves the indicator to the position being pointed too
 
             moveIndicator.transform.rotation = Quaternion.Euler(90, thumbstickRot, 0); //sets indicators rotation to the joystick rotation
 
         }


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 Jwizard93 · Jul 17, 2017 at 04:24 AM 0
Share

Is the Indicator a child of the player?

If it were then maybe setting moveIdicator.transform.localRotation might fix the issue?

If it is not or that doesn't work, you could just grab the direction of the players forward vector and treat that as "up" on the joystick. Do either of these methods make sense?

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.

Follow this Question

Answers Answers and Comments

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

Calculate rotation angle for two side of cube ( like dice ) from Quaternion.identity 0 Answers

Check if Rotation Angle is reached? 1 Answer

Using a VR controller as a joystick 0 Answers

Make a side of an object LookAT another object 1 Answer

Rotate floor plane in-game via C# script 1 Answer


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