C# 有没有办法在unity 3d中拖放UI按钮?
有没有办法在unity 3d中拖放UI按钮 我可以给一个按钮添加两个功能吗? 第一次正常单击时,它会执行某些操作。 第二次单击并按住时,可以将其拖放到屏幕上的其他位置 这是我到目前为止的代码,但它在按钮上不起作用C# 有没有办法在unity 3d中拖放UI按钮?,c#,unity3d,C#,Unity3d,有没有办法在unity 3d中拖放UI按钮 我可以给一个按钮添加两个功能吗? 第一次正常单击时,它会执行某些操作。 第二次单击并按住时,可以将其拖放到屏幕上的其他位置 这是我到目前为止的代码,但它在按钮上不起作用 void Update() { if (isDragged) { transform.position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
void Update()
{
if (isDragged)
{
transform.position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
}
}
public void OnMouseOver()
{
if (Input.GetMouseButtonDown(0))
{
isDragged = true;
}
}
public void OnMouseUp()
{
isDragged = false;
}
您可以使用unity内置接口 使用
IPointerClickHandler
在单击时执行某些操作,并实现另外三个处理拖动的界面,即IBeginDragHandler
,IDragHandler
,IENDraghandler
public class Example : MonoBehaviour, IPointerClickHandler, IBeginDragHandler, IDragHandler, IEndDragHandler
{
//Detect if a click occurs
public void OnPointerClick(PointerEventData pointerEventData)
{
Debug.Log(name + " Game Object Clicked!");
}
public void OnBeginDrag(PointerEventData eventData)
{
}
public void OnDrag(PointerEventData data)
{
}
public void OnEndDrag(PointerEventData eventData)
{
}
}
参考资料: