38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using UnityEngine; | |||
|  | 
 | |||
|  | public class PlayerCamera : MonoBehaviour | |||
|  | { | |||
|  |     public float Distance = 5.0f; | |||
|  |     public float Height = 2.0f; | |||
|  | 
 | |||
|  |     public GameObject PlayerTarget;     | |||
|  | 
 | |||
|  |     private PlayerInputController input; | |||
|  |     private Transform target; | |||
|  |     private PlayerMachine machine; | |||
|  |     private float yRotation; | |||
|  | 
 | |||
|  |     private SuperCharacterController controller; | |||
|  | 
 | |||
|  | 	void Start() | |||
|  | 	{ | |||
|  |         input = PlayerTarget.GetComponent<PlayerInputController>(); | |||
|  |         machine = PlayerTarget.GetComponent<PlayerMachine>(); | |||
|  |         controller = PlayerTarget.GetComponent<SuperCharacterController>(); | |||
|  |         target = PlayerTarget.transform; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	void LateUpdate() | |||
|  | 	{ | |||
|  |         transform.position = target.position; | |||
|  |         yRotation += input.Current.MouseInput.y; | |||
|  |         Vector3 left = Vector3.Cross(machine.lookDirection, controller.up); | |||
|  | 
 | |||
|  |         transform.rotation = Quaternion.LookRotation(machine.lookDirection, controller.up); | |||
|  |         transform.rotation = Quaternion.AngleAxis(yRotation, left) * transform.rotation; | |||
|  | 
 | |||
|  |         transform.position -= transform.forward * Distance; | |||
|  |         transform.position += controller.up * Height; | |||
|  | 	} | |||
|  | } |