[英]Unity drag doesn't work, object moves away from the pointer
我已將以下腳本附加到Canvas
內的Image
:
public class DragMe : MonoBehaviour, IDragHandler
{
public void OnDrag(PointerEventData eventData)
{
this.transform.localPosition += (Vector3)eventData.delta;
}
}
問題是,隨着我進一步拖動, Image
從指針下方消失的越來越多。 當我拖動回到起始位置時, Image
返回到手指/指針下方的位置。
將代碼更改為:
this.transform.position = eventData.position;
使物體跳到其他地方。
任何幫助深表感謝。
更新:伙計們,如果您閱讀了我的代碼,並且發現了重復的問題,那么您看到的答案就是我的問題! 但這有一個問題,即對象不會停留在拖動的手指/指針下方,並且隨着您的拖動而不斷遠離!
更新2: Image
:
帆布:
相機:
如果攝像機的視口未更改,最好使用“ Screen Space - Overlay
”。 然后以下代碼將起作用:
this.transform.position = eventData.position;
要使用Screen Space - Camera
,您需要將事件位置轉換為相機空間:
Vector3 position = eventData.position;
var canvas = image.canvas;
position.z = canvas.planeDistance;
image.transform.position = canvas.worldCamera.ScreenToWorldPoint(position);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.