Camera Orbit Script Error

I was following a tutorial on YT. I have rewind about 5 times and still can’t figure out why I get this error vs the other person.

using UnityEngine;
using System.Collections;
  
public class CameraController : MonoBehaviour 
{
	public Transform target;
  
	[System.Serializable]
	public class PositionSettings
	{
		public Vector3 targetPosOffset = new Vector3(0, 3.4f, 0);
		public float lookSmooth = 100;
		public float distanceFromTarget = -8;
		public float zoomSmooth = 100;
		public float maxZoom = -2;
		public float minZoom = -15;
	}
  
	[System.Serializable]
	public class OrbitSettings
	{
		public float xRotation = -20;
		public float yRotation = -180;
		public float maxXRotation = 25;
		public float minXRotation = -85;
		public float vOrbitSmooth = 150;
		public float hOrbitSmooth = 150;
	}
  
	[System.Serializable]
	public class InputSettings
	{
		public string ORBIT_HORIZONTAL_SNAP = "OrbitHorizontalSnap";
		public string ORBIT_HORIZONTAL ="OrbitHorizontal";
		public string ORBIT_VERTICAL ="OrbitVertical";
		public string ZOOM = "MouseScrollWheel";
	}
  
	public PositionSettings position = new PositionSettings();
	public OrbitSettings orbit = new OrbitSettings();
	public InputSettings input = new InputSettings();
  
	Vector3 targetPos = Vector3.zero;
	Vector3 destination = Vector3.zero;
	PlayerController pController;
	float vOrbitInput, hOrbitInput, hOrbitSnapInput, zoomInput;
  
	void Start()
	{
		SetCameraTarget(target);
  
		targetPos = target.position + position.targetPosOffset;
		destination = Quaternion.Euler (orbit.xRotation, orbit.yRotation + target.eulerAngles.y, 0) * -Vector3.forward * position.distanceFromTarget;
		destination += targetPos;
		transform.position = destination;
	}
  
	void SetCameraTarget(Transform t)
	{
		target = t;
  
		if (target != null) 
		{
			if (target.GetComponent<PlayerController>()) 
			{
				pController = target.GetComponent<PlayerController>();
			} 
			else
				Debug.LogError ("Camera's target needs a character controller.");
		} 
		else
			Debug.LogError ("Your Camera needs a target");
	}
  
	void GetInput ()
	{
		vOrbitInput = Input.GetAxisRaw (input.ORBIT_VERTICAL);
		hOrbitInput = Input.GetAxisRaw (input.ORBIT_HORIZONTAL);
		hOrbitSnapInput = Input.GetAxisRaw (input.ORBIT_HORIZONTAL_SNAP);
		zoomInput = Input.GetAxisRaw (input.ZOOM);
	}
  
	void Update()
	{
		GetInput();
		OrbitTarget ();
		ZoomInOnTarget ();
	}
  
	void LateUpdate()
	{
		//moving
		MoveToTarget();
		//rotating
		LookAtTarget();
	}
  
	void MoveToTarget()
	{
		targetPos = target.position + position.targetPosOffset;
		destination = Quaternion.Euler (orbit.xRotation, orbit.yRotation + target.eulerAngles.y, 0) * -Vector3.forward * position.distanceFromTarget;
		destination += targetPos;
		transform.position = destination;
	}
  
	void LookAtTarget()
	{
		Quaternion.targetRotation = Quaternion.LookRotation (targetPos - transform.position);
		transform.rotation = Quaternion.Lerp (transform.rotation, targetRotation, position.lookSmooth * Time.deltaTime);
	}
  
	void OrbitTarget()
	{
		if (hOrbitInput > 0) 
		{
			orbit.yRotation = -180;
		}
  
		orbit.xRotation += -vOrbitInput * orbit.vOrbitSmooth * Time.deltaTime;
		orbit.yRotation += -hOrbitInput * orbit.hOrbitSmooth * Time.deltaTime;
  
		if (orbit.xRotation > orbit.maxXRotation) 
		{
			orbit.xRotation = orbit.maxXRotation;
		}
		if (orbit.xRotation < orbit.minXRotation) 
		{
			orbit.xRotation = orbit.minXRotation;
		}
	}
  
	void ZoomInOnTarget()
	{
		position.distanceFromTarget += zoomInput * position.zoomSmooth * Time.deltaTime;
  
		if (position.distanceFromTarget > position.maxZoom)
		{
			position.distanceFromTarget = position.maxZoom;
		}
		if (position.distanceFromTarget < position.minZoom) 
		{
			position.distanceFromTarget = position.minZoom;
		}
	}
}

I keep getting this error:

error CS0117: UnityEngine.Quaternion' does not contain a definition for targetRotation’

Here:

Quaternion.targetRotation = Quaternion.LookRotation (targetPos - transform.position);
transform.rotation = Quaternion.Lerp (transform.rotation, targetRotation, position.lookSmooth * Time.deltaTime);

Any ideas how to fix?

I have reached out to the creator, but no answer yet.

Quaternion does not have any member called targetRotation. Did you instead mean to type

Quaternion targetRotation = Quaternion.LookRotation (targetPos - transform.position); 

and create a Quaternion variable named targetRotation

Quaternion doesn’t have a member targetRotation.

Most likely the line should look like this (without the dot between Quaternion and targetRotation:

Quaternion targetRotation = Quaternion.LookRotation (targetPos - transform.position);

I don’t have the PlayerController script so I cannot test, but looking at the code it seems that it might just be a small typo.

Try change the line:

Quaternion.targetRotation = Quaternion.LookRotation(targetPos - transform.position);

into

Quaternion targetRotation = Quaternion.LookRotation(targetPos - transform.position);

(replacing the dot with a space)

Does that work? Quaternion.LookRotation(vec) creates a Quateternion from the specified forward Vector3, so it makes sense to do it like that.