首先在之前的项目中用到的红外触摸框,发现在win8系统或者更高的系统上,在红外触摸框直接USB连接到电脑上的时候,电脑会直接识别红外框的交互。在用Unity进行测试的时候,发现UGUI能直接支持红外触摸框的操作。
经过测试,基本上UGUI所有的交互功能都能在红外触摸框中实现.
在一个项目中,需要用到一个拖动的交互方式,在UGUI中没有提供现成的方法,但是提供了相应的接口,我在网上其实也找到了一些写拖动的文章做了参考,再结合自己的理解,总结为如下几个步骤:
1.在需要拖动的物体上加上 Event Trigger 组件
2.在需要拖动的物体上加上自己写的拖动脚本,例如:MyDraw
3.打开MyDraw脚本,添加using UnityEngine.EventSystems引用,实现IBeginDragHandler,IDragHandler,IEndDragHandler这个3个接口
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class MyDraw : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public void OnBeginDrag(PointerEventData eventData)//开始拖动调用
{
//例:
Debug.Log("Begain Draw!");
}
public void OnDrag(PointerEventData eventData)//拖动过程中调用
{
//例:
transform.position = eventData.position;//鼠标坐标传给需要拖动的物体
}
public void OnEndDrag(PointerEventData eventData)//拖动结束调用
{
//例:
Debug.Log("End Draw!");
}
}
下一篇准备写关于拖动物体做碰撞的文章