본문 바로가기

프로그램/유니티 스크립트 소스

[유니티 스크립트 소스] 지형 오브젝트를 부드럽게 따라다니는 오브젝트(카메라)

728x90
반응형

지형 오브젝트(차, 사람 등)를 부드럽게 따라다니는 오브젝트 또는 카메라 소스인 Smooth Follow입니다.

 

using UnityEngine; 

public class SmoothFollow : MonoBehaviour 
{ 
    public Transform target; 
    public float distance = 10.0f; 
    public float height = 5.0f; 
    private float rotationDamping = 3.0f; 
    private float heightDamping = 2.0f; 

    void LateUpdate() 
    { 
        if (!target)

          return; 

        var wantedRotationAngle = target.eulerAngles.y; 
        var wantedHeight = target.position.y + height; 

        var currentRotationAngle = transform.eulerAngles.y; 
        var currentHeight = transform.position.y; 
 

        currentRotationAngle = Mathf.LerpAngle(currentRotationAngle, wantedRotationAngle, rotationDamping * Time.deltaTime); 

        currentHeight = Mathf.Lerp(currentHeight, wantedHeight, heightDamping * Time.deltaTime); 

        var currentRotation = Quaternion.Euler(0, currentRotationAngle, 0); 

        transform.position = target.position; 
        transform.position -= currentRotation * Vector3.forward * distance; 

        transform.position = new Vector3(transform.position.x, currentHeight, transform.position.z); 

        transform.LookAt(target); 
    } 
}

 

728x90
반응형