【问题标题】:Camera following player is jerky and has bad visual effect摄像头跟随播放器抖动,视觉效果不佳
【发布时间】:2016-02-25 06:27:38
【问题描述】:

我是初学者,并且在跟随播放器时出现相机抖动的问题。我有一个玩家在点击时只向上移动,而其他敌人则在 x 方向移动。但是当玩家开始跳跃时,相机会开始抖动(特别是靠近敌人),并且也会对敌人的运动产生不良影响。下面是我的 CameraFollow 代码。`

public class CameraFollow : MonoBehaviour {
[SerializeField]
private float yMin;
[SerializeField]
private float yMax;
[SerializeField]
private float xMin;
[SerializeField]
private float xMax;
private Transform target;


void Start () {     
    target = GameObject.Find("Player").transform;
    //player = GameObject.FindGameObjectWithTag("Player");
}

void LateUpdate () {        
    transform.position = new Vector3 (Mathf.Clamp(target.position.x, xMin, xMax), Mathf.Clamp(target.position.y, yMin, yMax), transform.position.z);        
    if (Input.GetKeyDown(KeyCode.Escape)){
        Application.Quit ();            
    }       
}

【问题讨论】:

  • 您能否花点时间单击“编辑”并从代码示例中删除不必要的空格/换行符?谢谢
  • 请注意,smooth follow 脚本完全是 builtin 统一的.. 只需点击添加即可。谷歌。 “标准资产”
  • 你能给我链接吗?谢谢
  • 不,我不能打扰,对不起..但尝试谷歌搜索。

标签: unity3d


【解决方案1】:

它抖动的原因是因为您直接设置相机的变换,而不是(例如)平滑地调整它。

我建议使用Vector3.Lerp

示例,而不是:

transform.position = new Vector3 (Mathf.Clamp(target.position.x, xMin, xMax), Mathf.Clamp(target.position.y, yMin, yMax), transform.position.z);

试试这些行:

Vector3 targetPos = new Vector3 (
    Mathf.Clamp(target.position.x, xMin, xMax),
    Mathf.Clamp(target.position.y, yMin, yMax),
    transform.position.z
    );

transform.position = Vector3.Lerp(transform.position, targetPos, 0.5f);

希望对你有帮助!

【讨论】:

  • 还是一样的。当玩家接近敌人时,相机抖动开始。敌人在 x 方向移动,玩家在 y 方向移动。
  • 玩家正在用屏幕点击跳跃.. public Vector2 jumpForce = new Vector2(0, 200);无效开始(){}无效更新(){如果(Input.GetMouseButtonDown(0)){GetComponent().velocity = Vector2.zero; GetComponent().AddForce(jumpForce); } } }
  • 我明白了。您能否尝试降低 lerp 因子,即使用 0.1f 之类的值(如果它仍然是生涩的,甚至更小)作为 lerp 函数中的第三个参数?
  • 尝试使用 lerp 因子,直到您发现它足够平滑,但仍然不会太快或太慢。让我知道它是否有效。
  • @SyedMuhammadSalmanShah 太好了。我强烈建议您先从网上学习一些教程,这样您就可以在尝试自己的实验之前掌握最常见的 Unity 机制。一切顺利! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-14
相关资源
最近更新 更多