如何使用“新”Unity 输入系统和鼠标制作相机平移和缩放系统

我正在尝试制作一个大战略游戏,并且正在尝试制作一个可以平移和缩放的相机,但是我尝试的所有操作最终都会以随机方向发送相机,或者只是将其设置为 0,0 .我需要它像 Crusader Kings 2 游戏一样,使用鼠标中键,根据鼠标所在的位置进行平移。我找到了一个关于如何执行此操作的视频,但我不知道如何将其转换为“新”Unity 输入系统

当前代码:

```public class Cameracontrols : MonoBehaviour
{

    Controls controls;

    public Camera Camera;

    Vector3 panOrigin;
    Vector3 mousePosition;
    bool middleMouseButtonHeld;

    private void Awake()
    {
        controls = new Controls();

        controls.MouseandKeyboard.Pan.performed += ctx => middleMouseButtonHeld = true;
        controls.MouseandKeyboard.Pan.canceled += ctx => middleMouseButtonHeld = false;
    }
    private void OnEnable()
    {
        controls.Enable();
    }

    private void OnDisable()
    {
        controls.Disable();
    }

    void Update()
    {
        Panmap();

        mousePosition.x = Mouse.current.position.x.ReadValue();
        mousePosition.y = Camera.transform.position.y;
        mousePosition.z = Mouse.current.position.y.ReadValue();
    }

    void Panmap()
    {
        if (Mouse.current.middleButton.ispressed)
        {
            panOrigin = Camera.ScreenToWorldPoint(mousePosition);

            Debug.Log(panOrigin);
        }

        if (middleMouseButtonHeld == true)
        {
            Vector3 difference = panOrigin - Camera.ScreenToWorldPoint(mousePosition);

            Camera.transform.position += difference;
        }
    }

}```

视频:https://www.youtube.com/watch?v=R6scxu1BHhs

tc8030 回答:如何使用“新”Unity 输入系统和鼠标制作相机平移和缩放系统

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/426.html

大家都在问