【发布时间】:2023-04-01 17:28:01
【问题描述】:
我目前正在 Unity 中制作一款游戏,我希望玩家能够根据触摸位置在屏幕上拖动对象。我创建了一个脚本来执行此操作,据我所知,它没有任何错误,应该允许我将脚本附加到的对象拖到屏幕上。但是,当我尝试执行代码时,什么也没有发生。触摸时,物体保持静止,根本不动。我什至尝试将 Input.GetTouch(0).position 切换为 Input.mousePosition 以查看问题出在我的手机上,但这也不起作用。有谁知道我如何解决这个问题?
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public class MoveBall : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public static GameObject WhiteBall;
Vector3 startPosition;
#region IBeginDragHandler implementation
public void OnBeginDrag(PointerEventData eventData)
{
WhiteBall = gameObject;
startPosition = transform.position;
}
#endregion
#region IDragHandler implementation
public void OnDrag(PointerEventData eventData)
{
transform.position = Input.GetTouch(0).position;
}
#endregion
#region IEndDragHandler implementation
public void OnEndDrag(PointerEventData eventData)
{
WhiteBall = null;
transform.position = startPosition;
}
#endregion
}
【问题讨论】:
标签: unity3d vector drag-and-drop game-engine drag