用的是unity5.3.6 easytouch版本是4.0版本
1.按钮,按钮实际用处不大,忽略。
2.虚拟摇杆
直接Gameobjec-easytouch-joysick添加。可以看到new joystick 上有个脚本ETCJoystick,然后获取他得到对象joy
//Debug.Log( joy.axisX.axisValue);
//Debug.Log(joy.axisY.axisValue); 这样就可以获取他的轴向偏移量。
3.关于手指触控
需要在Gameoejct添加easytouch-easytouch组件,这个组件是个空体物体上挂了一个easytouch脚本。脚本里面的事件系统里面清楚的写了事件的委托,各种手指操作可以挂在到这些事件上。注意,如下图,这个地方勾选上后UI将不再接收easytouch响应
然后,则开始写代码了。如果想让物体接受easytouch事件,就需要注册。。例子如下:
//此段代码挂载在游戏物体上
using UnityEngine;
using System.Collections;
using System;
using UnityEngine.UI;
using HedgehogTeam.EasyTouch;这个命名空间一定要添加。注意了
public class EasyTouchStart : MonoBehaviour {
public void OnEnable()
{
EasyTouch.On_TouchStart += On_TouchStart;
}
//点击屏幕任意位置都会进入
private void On_TouchStart(Gesture gesture)
{
gesture.isOverGui = true; //查看isovergui的源码引用,发现不置为true,某些UI的手指触控事件将失效。多看源码
//Debug.Log(gesture.isOverGui);
if (gesture.pickedUIElement !=null)// 点击到ui判空
{
Debug.Log("it is UI");/
}
if (gesture.pickedObject!=null && !gesture.pickedUIElement) //点击到3D物体判空,一定要注意判空,否则就会报错
{
gesture.pickedObject.GetComponent<Renderer>().material.color = new Color(UnityEngine.Random.Range(0, 1), UnityEngine.Random.Range(0, 1), UnityEngine.Random.Range(0, 1));
}
Debug.Log("chufa");
}
//注意删除事件
public void OnDestroy()
{
EasyTouch.On_TouchStart -= On_TouchStart;
}
public void OnDisable()
{
EasyTouch.On_TouchStart -= On_TouchStart;
}
}
总结: 总的来说用起来还是相当方便,很多事件注册可以查看easytouch的源码,事件都写的很详细,直接挂载对应的函数即可。源码中会自动区别pc和手机,可以看看。