首页 > 解决方案 > unity 平滑精确相机随惯性移动

问题描述

我正在尝试编写一个相机脚本,但它没有按预期工作。

void LateUpdate(){
        if (Input.GetMouseButtonDown(0)
        {
            _lastPosition = Input.mousePosition;
        }

        if (Input.GetMouseButton(0))
        {
            var delta = _lastPosition - Input.mousePosition;
            var deltaxz = new Vector3(delta.x, 0f, delta.y);
            transform.Translate(deltaxz * Time.deltaTime, Space.World);
            _lastPosition = Input.mousePosition;
        }
}

我写了这段代码来移动相机,但是鼠标奇怪地移动了相机。如果我将鼠标移动得太快,它就会移动得很快。如果慢,则相机的移动速度比鼠标慢。

我认为这ScreenToWorldPoint会有所帮助,但相机是 RTS 风格,我想像移动地面一样移动它“拖放”\

标签: c#unity3dvectorcamerahuman-computer-interface

解决方案


你应该尝试使用 Vector3.Lerp(_lastPosition, deltaxz, someValue * Time.deltaTime)

这是我用来使动作更流畅的东西,它非常好,只需根据你想要的速度调整 someValue


推荐阅读