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
0
Question by Nymisu · Feb 17, 2015 at 08:45 AM · rotationconversionlocalpositionworld coordinatescenterofmass

Converting world position to local position according to rotation

Hello everyone! I've struck a wall trying to wrack my brain on what's wrong, but rotational calculations, or geometry aren't my strong suit.

The short bit: rigidbody.worldCenterOfMass - transform.position returns Vector3 of (0.0, -0,4, 0.1) while... rigidbody.centerOfMass returns Vector3 of (0.0, -0.1, -0.4) This is because the object is rotated (-90, 0, 0) in euler angles.

For another example: rigidbody.worldCenterOfMass - transform.position returns (1.4, 0.0, -7.5) while... rigidbody.centerOfMass returns (1.4, 7.5, 0.0) and for an additional fun factor: transform.InverseTransformPoint(t.rigidbody.worldCenterOfMass) returns (0.4, 0.0, -2.4) This object is rotated (90, 0, 0) in euler angles.

If i zero the rotation on the objects, the above values, save for InverseTransformPoint return the same values. This isn't ideal because of the code's intended usage.

I need to know how to attain the same values as rigidbody.centerOfMass returns calculated from the rigidbody.worldCenterOfMass. This is because i want to make a movement handle that's capable of moving the center of mass of the rigidbody around easily in the editor, and at runtime.

While i can cope with a simple Vector3 value to update it, it just isn't the same usability, and i see no other way to draw the handle than this.

The only relevant code to show is these two lines:

 if(t==null) t = (Buoyancy)target
 Handles.PositionHandle(t.rigidbody.worldCenterOfMass, t.transform.rotation);
 
 

I need the second line to somehow return the same value that t.rigidbody.centerofmass would, so that i may modify it utilizing the handle.

Thanks in advance!

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 Nymisu · Feb 18, 2015 at 10:49 AM

Problem solved, somewhat.

Handles still do not work, but experimenting with vector3 did come to a resolution.

You must force a uniform scale, then the worldcenterofmass will become equal with the centerofmass with the following code:

 transform.TransformPoint((rigidbody.centerOfMass/transform.localScale.x));

This isn't the best solution, and i'd absolutely love if someone could figure out how to properly implement handle to control the center of rigidbody at runtime.

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

20 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

Related Questions

Rotating Raycast with object?? 1 Answer

centerOfMass and local coordinate origin 1 Answer

Quaternion to Matrix Conversion Error - Camera Script 0 Answers

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

Converting from Unity World Coordinates to Inches . 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