【问题标题】:Graphical glitching when offsetting GameObject from the Mouse location从鼠标位置偏移 GameObject 时出现图形故障
【发布时间】:2019-08-31 08:04:48
【问题描述】:

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

我尝试更改坐标的计算顺序,以及对 GameObject 使用 Unity Camera 方法,例如 WorldToScreenPoint()。

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

public void DragObject(BaseEventData eventData)
    {
        if (!bDebugEnabled) return;

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

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

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

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    我想你的 DragObject(BaseEventData eventData)method 每一帧都会被调用。 所以,offset 每帧都会重新计算,因为你移动了gameObject,所以它是不同的。 只有当玩家最初点击对象时,您才应该计算offset

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

    这一行应该在一个只在对象初始点击时调用的方法上,其余的应该在整个拖动过程中更新。

    【讨论】:

      猜你喜欢
      • 2018-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多