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;
 | 
						|
	}
 | 
						|
}
 |