Unity大屏幕触摸插件TouchScript的使用笔记
先添加相应组件
委托
//其他长按,双击等用法相同
void Start () {
//点击
GetComponent<PressGesture>().Pressed += pressHandler;
//抬起
GetComponent<ReleaseGesture>().Released += releasdHandler;
}
private void pressHandler(object sender, EventArgs e){}
private void ReleaseGesture(object sender, EventArgs e){}
private void OnDisable()
{
GetComponent<PressGesture>().Pressed -= pressHandler;
GetComponent<ReleaseGesture>().Released -= releasdHandler;
}
获得在物体上的触摸点的list组
IList<Pointer> p = GetComponent<PressGesture>().ActivePointers;
//Pointer的属性(项目中用到的一些属性)
//TouchManager分配给触摸点的ID
public int Id { get; private set; }
//触摸点的类型,鼠标和触摸
public PointerType Type { get; protected set; }
//触摸点的位置
public Vector2 Position
{
get { return position; }
set { newPosition = value; }
}
在press点击事件中每触摸一次发送一次触摸数据,不包含上次数据,只能在pressHandler()中获得
使用TouchManager获得触摸点
//TouchManager.Instance内有很多方法,具体看源码
void Start ()
{
//每次有触摸点加入时都会触发,启动时会有id为-1的鼠标点进入
TouchManager.Instance.PointersAdded += pointersAddedHandler;
}
private void pointersAddedHandler(object sender, PointerEventArgs e)
{
foreach (Pointer p in e.Pointers) {
if(p.Id == -1)
{
TouchManager.Instance.CancelPointer(-1, true);//清除id为-1的点
}
}
}