求教Unity3d的EasyTouch插件的多点触控
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教Unity3d的EasyTouch插件的多点触控相关的知识,希望对你有一定的参考价值。
参考技术A 控制角色移动播放动作或者其他逻辑则需要给这个橘色节点绑定逻辑脚本,UNity支持多种脚本语言,在此是用JAVA脚本.创建 脚本Assets --> Create ----> javascript 创建一个空的逻辑脚本,并将这个脚本绑定在主角对象身上,绑定方式是直接拖拽到主角节点即可。
对脚本的编写:
类及接口主要参照帮助文档,这里只介绍脚本基本结构和简单示例:
每个脚本至少都有两个函数: function Start() 可以认为是初始化 function Updata()则是每帧更新函数。
要实现对角色位置的控制移动首先要定义该角色,
首先 定义GameObject对象也就是要控制的目标: private var _MainRole:GameObject;;
在function Start() 函数中初始化该对象: inRole = GameObject.Find("MainRole"); // 从场景中查找到名叫"MainRole"的对象也就是主角。
在每帧更新时侦听键盘事件,如果按键按下W则空对象向前移动
if(Input.GetKey(KeyCode.W))
_MainRole.transform.Translate( Vector3.forward * 0.05 );
至此,就已经完成按键控制角色移动的全部过程,运行游戏就可以用按键控制角色移动。
Linux 中的多点触控
【中文标题】Linux 中的多点触控【英文标题】:Multitouch in Linux 【发布时间】:2010-03-12 07:11:10 【问题描述】:我有两个问题:
-
如何在 linux 中模拟触摸事件。
如何在 Linux 中的 Qt 上使用多点触控。
【问题讨论】:
【参考方案1】:您可以通过直接调用qt_translateRawTouchEvent
来模拟触摸事件。 (此方法未记录,但在qapplication.cpp
中并已导出)。
你想把它放在文件的顶部:
// forward-declaration of Qt internal function
Q_GUI_EXPORT void qt_translateRawTouchEvent(QWidget *window,
QTouchEvent::DeviceType deviceType,
const QList<QTouchEvent::TouchPoint> &touchPoints);
函数调用语法是:
qt_translateRawTouchEvent(targetWidget, deviceType, points.values());
在您的情况下,使用(NULL, QTouchEvent::TouchScreen, touchPoints)
调用此方法,其中touchPoints
是您当前被用户触摸的点列表。
这至少应该在 Qt 4.7 和 4.8 中工作,可能在 Qt 5 之前,但我没有检查。
【讨论】:
【参考方案2】:对于多点触控问题,您可能想看看 Qt 添加的Gestures API。
【讨论】:
Ок,但是如何在 Linux 中模拟触摸?我需要模拟手势。 @Alex Snet:我不知道如何模拟触摸事件。当您提出多个这样的问题时,您需要预料到有些人可能只知道其中一个问题的答案。以上是关于求教Unity3d的EasyTouch插件的多点触控的主要内容,如果未能解决你的问题,请参考以下文章
求助 在网上找的关于unity3D插件EasyTouch和EasyJoystick 接收摇杆的事件.