Camera Follow script 不流畅?
Camera Follow script not smooth?
我的相机跟随脚本不是很流畅。如何使相机的移动更平滑?
这里是:
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);
}
}
}
该脚本使相机跟随旋转目标。
您正在 FixedUpdate 上更新相机位置。将其更改为 LateUpdate。 FixedUpdate 是为其他目的而设计的,并且通常比每帧调用的次数少。 LateUpdate 在每一帧和更新之后被调用,所以如果你的目标在更新时更新,相机将在稍后更新它的位置,这是期望的。
我的相机跟随脚本不是很流畅。如何使相机的移动更平滑?
这里是:
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);
}
}
}
该脚本使相机跟随旋转目标。
您正在 FixedUpdate 上更新相机位置。将其更改为 LateUpdate。 FixedUpdate 是为其他目的而设计的,并且通常比每帧调用的次数少。 LateUpdate 在每一帧和更新之后被调用,所以如果你的目标在更新时更新,相机将在稍后更新它的位置,这是期望的。