So the script that controls the billboarding of the healthbars instantiates the Canvas as a Child of the Socket, and then rotates the socket to the camera. The problem I’m having is that the canvas is being instantiated with a weird Rect Transform on the Y axis, which appears to be dependant on the rotation of the enemy.
If I try to rotate the Socket at runtime, it snaps back every frame (because of the Late Update) but if I change the Rect Transform rotation to 0 (its usually some random number like 144 or -99) then the healthbars look perfect. Prior to that its doing all kinds of weird stuff.
I’ve fiddled with the instantiation A LOT. I tried changing Quaternion.Identity to Quaternion.Eulor(0,0,0), it still instantiates with the same random rotations as Identity does. Then I tried capturing the canvas as a variable and changing the rotation of it to 0,0,0 at start, but that didn’t make any difference either.
I’m literally so confused I could punch my monitor. I assume I’m just fundamentally misunderstanding the way instantiation happens with regards to rotation but it’s really hacking me off.