How do I calculate the offset for

I want to use transform.LookAt on a number of different transforms. The only problem is that the transforms are all oriented in different directions (their global x, y, and z are all pointing different directions). So when I use LookAt, they objects appear to flip in funny directions compared to how they started.

I can't change the transform's starting orientations in the modeling program, because they actually need to be the way they are.

So what I am trying to do is figure out how to get the same effect as LookAt but take into account the offset orientation that they start with.

Ideas?

you could make them a child of a new gameobject, and then call LookAt on the new gameobject's transform. That would maintain the child's transform relative to the parent, rather than overriding it.