using quaternion.AngleAxis

I am attempting to make an object rotate around the x/z axis. This is the code currently being used:

// Update is called once per frame
void Update () {

	if(animate && transform.position != destination){
		transform.LookAt(destination);
		transform.position = Vector3.Lerp(origin,destination,tParam);
		transform.rotation = q * Quaternion.AngleAxis(360 * tParam, Vector3.up) * Quaternion.AngleAxis(360 * tParam, Vector3.left);
		tParam += Time.deltaTime / duration;

		if(transform.position == destination){
			animate = false;
		}
	}
}

using q * vector3.up rotates around the z axis and q * vector3.left rotates around the x axis. I obviously don’t understand quaternions correctly as the combination of the 2 goes haywire.

An ideal result would actually be getting object to face target and then rotate back over front towards the target (like a wheel on a car). Transform.LookAt(destination) seems to have no effect.

In my experience, there usually is no need to generate quaternions by constructor or by AngleAxis at any time.

transform.LookAt(destination) doesn’t work in your code because it sets the rotation of your transform, which is overridden two lines later on.

If Transform.LookAt works for you, just delete the transform.rotation = … line.
Otherwise, you can use Quaternion.RotateTowards and Quaternion.LookRotation to achieve nice results. (I can explain a little more if you want.)