Use Unity's Transform.LookAt to orient a GameObject towards another but applying a custom "up" vector derived from the angle between two other GameObjects
- Status: Closed
- Prize: £40
- Entries Received: 4
- Winner: joeyabuki
I have a Unity project which contains a pair of glasses, and three control points: a left eye, a right eye, a nose. The pair of glasses is supposed to be positioned, scaled and oriented so that the left and right eye control points sit within the pair of glasses, and the glasses are angled so they point towards the nose control point.
I've created an [login to view URL] component that does this (in Editor mode) but it doesn't respect the tilt angle of the eyes, because it relies on [login to view URL] with [login to view URL] to establish which was is up. However, I can't figure out how to derive the proper angle using the three control points I have.
I need someone knowledgable with 3D geometry, who understands Unity's geometry system, and who can write clean C# code to show me how it would work.
ZIP file attached of my Unity 2017.3.1f1 project with everything in. It's as simple as I could make it. Please post a screen recording of your fix to [login to view URL], demonstrating the glasses behave correctly (also include the actual code so I can check it myself) and I will pick the first solution which is the cleanest/simplest/properly functioning entry.
I'm sure to the right developer, this is a 1-line piece of code. It should be an easy win!
“Malek was quick, efficient and a pleasure to work with. He was the only freelancer I found that delivered exactly what I wanted, without any unexpected issues, first time and without fuss. Highly recommended!”
adrianward, United Kingdom.