为什么我在Unity中的拖动逻辑不起作用? (仅限一次)

问题描述 投票:0回答:1

我有一个附加到 GameObject 的脚本,还附加了一个 Collider2D。 该脚本应该使我能够在按住鼠标的同时拖动游戏对象,然后只需松开鼠标即可“放下”它。 但是,我只能执行一次......只有当我重新启动播放模式或再次禁用并启用 Collider2D 时,它才不会第二次工作。 我正在使用 Unity 版本 6,我已经查找了问题,但还没有找到合适的解决方案。有人在 Unity 论坛上建议检查项目设置中的“Physics2d.autoSimulation”是否设置为 false,因为这可能会导致问题,但我没有发现这样的设置。

private bool _dragging;
    
    private void Update()
    {
        if (_dragging)
        {
            var mousePosition = _camera.ScreenToWorldPoint(Mouse.current.position.ReadValue());
            transform.position = new Vector3(mousePosition.x, mousePosition.y, 0);
        }
    }
    
    private void OnMouseDown()
    {
        _dragging = true;
    }
    
    private void OnMouseUp()
    {
        _dragging = false;
    }

这是我的代码

unity-game-engine 2d collision rider mouseenter
1个回答
0
投票

OnMouseDown()
替换为
OnMouseDrag()

© www.soinside.com 2019 - 2024. All rights reserved.