Issue with getting player to rotate with vehicle

I have a setup where a rigidbody vehicle (well, more like a moving platform with wheels) is enclosed in a trigger, and that trigger is used to have “occupants” of the vehicle turn when the vehicle turns.

function OnCollisionStay (col : Collision) {
	if(!col.gameObject.CompareTag("Track"))
	{
		col.transform.rotation *= (Quaternion.Inverse(oldRot) * transform.rotation);
	}
}

The problem is things are off when the (rigidbody) player’s direction differs from the vehicle’s “forward”. For example, if the player were to mount and tackle the vehicle while facing perpendicular to the vehicle’s “forward”, causing the vehicle to tilt, the player will then tilt in a different direction. It is basically not accounting for the player’s view direction differing from that of the vehicle’s “forward”.

You’re approaching this wrong: simply parent the player to a GameObject in the vehicle which would be in the proper position and rotation. Then set the player’s local position to Vector3.zero and local rotation to Quaternion.identity.