Child versus Parent rotations

I am working on an animation that has main object animated along a path. That comes in just fine and is working well. The Main object has a child that I have put the following script on...

` // Smoothly tilts a transform towards a target rotation.

var smooth = 2.0;

var tiltAngle = 30.0;

var myParent : Transform;

function Update () {

var tiltAroundZ = Input.GetAxis("Horizontal") * tiltAngle;

var target = Quaternion.Euler (0, 0, tiltAroundZ);

// Dampen towards the target rotation
transform.rotation = Quaternion.Slerp(transform.rotation, target,Time.deltaTime * smooth);

}

`

The issue is that now my child object ignores that it is the child of the Main animated object. At least rotationally.

How can I get my child object to still behave as a child, while controlling the local rotational z roll of the object with my script?

Have a look at Transform.localEulerAngles.

You are setting the rotation of the transform (which is the global rotation) and not localRotation. Change your code to transform.localRotation and see if that is what you want.

After a few great suggestions, adding this to the beginning of my Update function keeps things oriented properly. Not completely certain why, but this is better.

transform..rotation = Quaternion.Euler(lockPos, transform.rotation.eulerAngles.y,transform.rotation.eulerAngles.x);