相机跟踪脚本不流畅?

时间:2016-01-31 09:54:37

标签: c# unity3d unity5 gameobject

我的相机跟踪脚本不是很流畅。如何平滑相机的移动?

这是:

using UnityEngine;
using System.Collections;

public class FollowCamera : MonoBehaviour {

    public float interpVelocity;
    public float minDistance;
    public float followDistance;
    public GameObject target;
    public Vector3 offset;
    Vector3 targetPos;

    void Start () {
        targetPos = transform.position;
    }

    void FixedUpdate () {
        if (target)
        {
            Vector3 posNoZ = transform.position;
            posNoZ.z = target.transform.position.z;

            Vector3 targetDirection = (target.transform.position - posNoZ);

            interpVelocity = targetDirection.magnitude * 5f;

            targetPos = transform.position + (targetDirection.normalized * interpVelocity * Time.deltaTime); 

            transform.position = Vector3.Lerp( transform.position, targetPos + offset, 0.25f);

        }
    }
}

脚本使相机跟随旋转目标。

1 个答案:

答案 0 :(得分:1)

您正在更新FixedUpdate上的相机位置。将其更改为LateUpdate。 FixedUpdate是为其他目的而设计的,通常每帧都会被调用。每个帧都会调用LateUpdate,然后在Update之后调用,所以如果你的目标在更新后更新,相机将在稍后更新它的位置,即可。