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
1
Question by MK7 · Apr 14, 2011 at 04:06 PM · axisrotatearound

Rotate around using another objects axis

is the title question possible?

My rotate around code uses the player position but uses it's own axis for the rotation axis. so when the player turns right or left it seems as if the controls change. I figured if I use the players axis I could keep the controls consistent no matter which way the player turns. If there is some better way to approach this please let me know

var Player : Transform; var RotateSpeed = 20;

function Update () { if (Input.GetKey ("z")) // spin the player around the world origin at 'RotateSpeed' degrees/second. transform.RotateAround (Player.position, Vector3.right, RotateSpeed Time.deltaTime); if (Input.GetKey ("x")) transform.RotateAround (Player.position, Vector3.left, RotateSpeed Time.deltaTime);

 if (Input.GetKey ("c"))
     transform.RotateAround (Player.position, Vector3.back, RotateSpeed * Time.deltaTime);

 if (Input.GetKey ("v"))
     transform.RotateAround (Player.position, Vector3.forward, RotateSpeed * Time.deltaTime);

}

alt text

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 Marnix · Apr 14, 2011 at 04:19 PM

Seems like a fair solution to me. Quite clean. You will have to change change your Vector3.right to for example: the players own right. Like: Player.right. I think you can ask that. Or if you want it to be like the camera's axis: Camera.main.transform.right. Play around with the different axis. Just think of: about which axis do I want to rotate this object?

Every transform has its own right, forward, up, etc. You can just call it as the axis you want to turn your object around. Vector3.right is the same as Vector3.unitX, so that is just (1,0,0) always. Doesn't seem like a good one to use here.

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

No one has followed this question yet.

Related Questions

rotate object around another object 1:1 1 Answer

Set max allowed angle? 1 Answer

RotateAround 2 axes at once 0 Answers

Rotatearound Collider axis 1 Answer

Rotatearound turning with player as pivot error 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