从鼠标位置偏移游戏对象时的图形故障



我试图用鼠标拖动游戏对象,同时在拖动时保持对象和鼠标之间的距离。我遇到的问题是,当远处进入我的代码时,会出现图形故障。我不知道为什么。

我尝试更改坐标的计算顺序,以及使用Unity相机方法,例如WorldToScreenPoint((来计算游戏对象。

代码在没有考虑偏移量的情况下工作正常,但我想保留偏移量,因此它尽可能准确。

public void DragObject(BaseEventData eventData)
{
if (!bDebugEnabled) return;
offset =  Input.mousePosition - eventData.selectedObject.transform.position;
eventData.selectedObject.transform.position = Input.mousePosition + offset;
}

我希望游戏对象在保持与鼠标的偏移距离的同时移动。例如,拖动时将保持游戏对象的一角。

实际结果是游戏对象在靠近鼠标的两个位置之间捕捉。结果可以在这里找到

我想你的DragObject(BaseEventData eventData)方法每帧都调用。 因此,offset每帧都会重新计算,并且由于您移动了gameObject,因此情况有所不同。 仅当玩家最初单击对象时,才应计算offset

offset =  Input.mousePosition - eventData.selectedObject.transform.position;

此行应位于仅在初始单击对象时调用的方法上,其余部分应在整个拖动期间更新。

最新更新