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 rickw · Jul 28, 2014 at 10:58 PM · rotationtransformparent-child

Rotating parent and positioning child between parent and camera.

I have a parent/child object structure.

I'm positioning the child so it always sits on the vector between the parent and the camera.

The following code is attached to the child.

 Vector3 diff =   Camera.main.transform.position-this.gameObject.transform.parent.position;
 Vector3 unitVector =   Vector3.Normalize (diff);
 this.transform.localPosition = (10f * unitVector);

If I rotate the parent, this child is no longer between the camera and the parent.

So, I thought all I'd need to do would be to rotate the unit Vector by the rotation applied the parent or, rotate the child back by this angle.

I was wrong.

I'm unsure as to why this wouldn't work?

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 robertbu · Jul 28, 2014 at 11:05 PM 0
Share

Not sure how you are doing your 'back' angle. Given that you apply a Quaternion rotation of q to the parent, I believe (I'm away from my desk and cannot test) you can do:

  unitVector = Quaternion.Inverse(q) * unitVector;

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by VesuvianPrime · Jul 29, 2014 at 12:28 AM

Hi Rickw

Firstly, an architecture nag: ideally a child should not be aware of it's parent. Have you considered moving this code into the parent?

I think the main problem with your code is you're overthinking things. Check this out:

 Vector3 cameraPosition = Camera.main.transform.postion;
 Vector3 midPoint = (transform.position + cameraPosition) / 2.0f;
 myChild.transform.position = midPoint;

No need to worry about calculating distance or normalizing things. You just need to get the midpoint and set the WORLD position of the child.

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

when i make a gameobject child of another gameobject, then it's scale and rotation both changes in a very wierd manner. 0 Answers

Why do grouped Terrain objects move together but don't rotate as one? 1 Answer

How to rotate a rigidbody relative to another? 1 Answer

Move child objects in the opposite direction of parent object 0 Answers

On Finger Touch and Drag Rotate 3D Ball 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