easytouch使用方法
1.import“EasyTouch”资源包
2.创建空物体,命名为EasyTouch(当然你也可以改成其他名字)
3.添加EasyTouch.cs脚本在刚刚创建的空物体(EasyTouch)上
4.选择改物体但不要将BroadcastMessages勾选
5.创建一个新的C#脚本,命名MyFirstTouch
6.添加这些方法
public class MyFirstTouch : MonoBehaviour
{
//注册事件
void OnEnable()
{
EasyTouch.On_TouchStart += On_TouchStart;
}
// 取消注册
void OnDisable()
{
EasyTouch.On_TouchStart -= On_TouchStart;
}
// 取消注册
void OnDestroy()
{
EasyTouch.On_TouchStart -= On_TouchStart;
}
public void On_TouchStart(Gesture gesture)
{
Debug.Log(“Touch” + gesture.position);
}
}
7.再创建一个空物体,命名为Receiver
8.将MyFirstTouch脚本添加到空物体Receiver上
9.运行并且点击遥感,会发现控制台打印了当前按下的坐标
10.其中5-9这几步是用来当我们拖动鼠标是,输出拖动到的位置信息(在下面这个实例中5-9可以不做)
实例:
在上面1-4的步骤中接着添加JoyStick:Hedgehog Team->Easy Touch->Extensions->Add a new Joystick。此时就会在左下角创建了虚拟遥感的实例,此时把摇杆的名字改为MoveJoystick,因为以后我们通过这个来进行玩家的位置设定,新建一个脚本MoveController ,并挂在玩家上
using UnityEngine;
using System.Collections;
public class MoveController : MonoBehaviour
{
public float moveSpeed = 5.0f;
void OnEnable()
{
EasyJoystick.On_JoystickMove += OnJoystiickMove;
EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveEnd;
}
//移动摇杆结束
void OnJoystickMoveEnd(MovingJoystick move)
{
//停止时,角色恢复idle
if (move.joystickName == “MoveJoystick”)
{
animation.CrossFade(“Idle”);
}
}
//移动摇杆中
void OnJoystiickMove(MovingJoystick move)
{
if (move.joystickName != “MoveJoystick”)
{
return;
}
//获取摇杆中心偏移的坐标
float joyPositionX = move.joystickAxis.x;
float joyPositionY = move.joystickAxis.y;
if(joyPositionX != 0 || joyPositionY != 0)
{
//设置角色的朝向(当前坐标 + 摇杆偏移量)
transform.LookAt(new Vector3(transform.position.x + joyPositionX, transform.position.y, transform.position.z + joyPositionY));
//移动玩家的位置(按朝向位置移动)
transform.Translate(Vector3.forward * Time.deltaTime * moveSpeed);
//播放跑的动画
animation.CrossFade(“Run00”);
}
}
}
这样就实现了任务的摇杆控制移动
3.添加虚拟button的应用
点击HedgehogTeam->EasyTouch->Extensions->Create a new Button,会在屏幕右下角创建一个button
配置图片如下:
在人物控制脚本中添加功能函数
void Attack()
{
animation.Stop();
//animation[“Combo”].speed = 0.1f;
//animation[“Combo”].wrapMode = WrapMode.Once;
animation.PlayQueued(“Combo”, QueueMode.PlayNow);
animation.PlayQueued(“Idle”, QueueMode.CompleteOthers);
}