C# 摄像机跟随导致玩家口吃

C# 摄像机跟随导致玩家口吃,c#,unity3d,C#,Unity3d,我目前正在努力使相机平稳地跟随播放器。该脚本工作正常,但问题是该脚本会导致玩家在某一点上口吃。例如,如果玩家在X:3,玩家会口吃,但如果玩家在X:6,玩家会停止口吃。我100%确定这个脚本是个问题,因为如果我删除脚本,玩家就不会口吃了 以下是“摄影机跟随”脚本: using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraFollowing : MonoBeh

我目前正在努力使相机平稳地跟随播放器。该脚本工作正常,但问题是该脚本会导致玩家在某一点上口吃。例如,如果玩家在X:3,玩家会口吃,但如果玩家在X:6,玩家会停止口吃。我100%确定这个脚本是个问题,因为如果我删除脚本,玩家就不会口吃了

以下是“摄影机跟随”脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraFollowing : MonoBehaviour
{
    [SerializeField]
    private Transform target;

    [SerializeField]
    private Vector3 cameraOffset;

    [SerializeField]
    private float followSpeed = 10f;

    [SerializeField]
    private float xMin = 0f;

    private Vector3 velocity = Vector3.zero;

    private void FixedUpdate()
    {
        Vector3 targetPos = target.position + cameraOffset;
        Vector3 clampedPos = new Vector3(Mathf.Clamp(targetPos.x, xMin, float.MaxValue), targetPos.y, targetPos.z);
        Vector3 smoothPos = Vector3.SmoothDamp(transform.position, clampedPos, ref velocity, followSpeed * Time.fixedDeltaTime);

        transform.position = smoothPos;
    }
}

如果你知道答案或者可能的原因,请告诉我,我正试图在今年年底发布、发布这个游戏。谢谢我想你说的口吃是指颤抖或颤抖(不熟悉口吃这个词)。 我会努力适应这个例子。使用
void Update()
LateUpdate()
代替
FixedUpdate()

如果希望游戏准确,您可能需要使用
void LateUpdate()
。检测到输入后将调用此方法,因此它的反应会更好。我相信这是更好的选择,因为它比
Update()
更准确


我还将跟踪场景中从某个确定点开始的抖动,并在不希望发生抖动的位置附近检查一些错误放置的对撞机。

PS-我对c#和unity非常陌生,因此如果您知道答案,请您解释一下,谢谢!球员口吃?如果脚本所附加的是相机,那么这就没有意义了。相机是不是口吃的那个?我不认为你在修改播放器的变换。实际上你可以使用
LateUpdate
,这样在处理用户输入后,相机肯定会移动