Return camera to original rotation values Logic

The title might not be very descriptive. I now how to to this, I just can’t think of a logical way to implement it, if that makes any sense…Please read
I have a camera parented to a truck(the player). If the player starts doing flips and stuff, upon landing the camera will be rotated in some weird manner. I have a script that was written mostly by my instructor, for the camera to make the view lag a bit when you turn the truck, as if the camera were a balloon attached to the truck by a string. By disabling that script and testing the game, I determined that the issue is a result of the script, but I would like very much to keep it. My idea was this

var camRotX : float;
var camRotZ : float;

function Start(){ //defines original rotation values

	camRotX = transform.rotation.eulerAngles.x;
	camRotZ = transform.rotation.eulerAngles.z;
}

function Update (){ //sets current rotation values to original
	
	transform.rotation.eulerAngles.x = camRotX;
	transform.rotation.eulerAngles.z = camRotZ;
}

This worked, except that it was maintaining the rotation of the camera constantly, so if you were to go up a slope, the camera would stare at the side of the mountain while the truck rotated with the grade. I thought maybe setting the rotation values only when the truck collides with the terrain would work, but I have no idea how to make my camera know when the truck hits the ground. I was thinking maybe some sort of ParentOnCollisionEnter might exist but I couldn’t find anything in the scripting API.

I don’t think it’s necessary, but just in case, here is the whole script.

var frameCounter : int = 0;
var frameCycle_01 : int;
var frameCycle_02 : int = 0;
var rot_Y : float[] = new float[10];

var camRotX : float;
var camRotZ : float;



function Start(){
	camRotX = transform.rotation.eulerAngles.x;
	camRotZ = transform.rotation.eulerAngles.z;
}

function Update () {
	

	frameCycle_01 = frameCounter%10;
	frameCycle_02 = (frameCounter + 1)%10;
	
	rot_Y[frameCycle_01] = TruckDriver.truckRotation.y;

	transform.rotation.eulerAngles.y = rot_Y[frameCycle_02];
	
	transform.rotation.eulerAngles.x = camRotX;
	transform.rotation.eulerAngles.z = camRotZ;
	
	frameCounter++;
}

You’re close with that first script, just think about what conditions you want those initial rotations to be applied. Probably not all the time right? If you’re using a character controller, look into controller.isGrounded.