我有一个附加到 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;
}
这是我的代码
将
OnMouseDown()
替换为 OnMouseDrag()
。