나는 카메라가 위에서 아래를 향하고있는 3D 자동차 게임을 가지고있다. 차가 움직이면 카메라가 따라 와야합니다. 나는 뒤에 오는 위치를하는 방법을 알고있다. 그러나 나는 차를 위해 매끄럽게 같은 회전을 만드는 방법을 모르고있다. y
축만 변경하면됩니다. x = 90
및 z = 0
입니다. 자동차는 y
축에서만 또한 회전합니다.Unity에서 카메라를 부드럽게 회전하는 방법은 무엇입니까?
public float interpVelocity;
public float minDistance;
public float followDistance;
public GameObject target;
public Vector3 offset;
Vector3 targetPos;
// Use this for initialization
void Start()
{
targetPos = transform.position;
}
// Update is called once per frame
void FixedUpdate()
{
if (target)
{
Vector3 posNoZ = transform.position;
posNoZ.z = target.transform.position.z;
Vector3 targetDirectionZ = (target.transform.position - posNoZ);
interpVelocity = targetDirectionZ.magnitude * 5f;
targetPos = transform.position + (targetDirectionZ.normalized * interpVelocity * Time.deltaTime);
transform.position = Vector3.Lerp(transform.position, targetPos + offset, 0.25f);
Vector3 posNoX = transform.position;
posNoX.x = target.transform.position.x;
Vector3 targetDirectionX = (target.transform.position - posNoX);
interpVelocity = targetDirectionX.magnitude * 5f;
targetPos = transform.position + (targetDirectionX.normalized * interpVelocity * Time.deltaTime);
transform.position = Vector3.Lerp(transform.position, targetPos + offset, 0.25f);
}
}
이 질문은 https://gamedev.stackexchange.com/ – Sty
에 더 적합 할 오히려 SLERP 사용을 고려할 수 : 같은 모든 시간 X 축 및 z을 유지하려면, 당신의 각도 계산은 모양을 Lerp보다 – gareththegeek