easy touch利用playmaker拖动ngui对象

来源:互联网 发布:泡泡交友软件 编辑:程序博客网 时间:2024/05/19 14:36

最近在学习unity3d的几个插件。easy touch,playmaker,ngui。为了使几个能够一起使用,还弄了playmaker ngui scripts和easy touch addon 4 playmaker插件。

最近做的一个需要touch拖动一个ngui的2d对象,又想用playmaker来控制。这话怎么说怎么绕啊。反正,是有杀鸡用宰牛刀的感觉。

在easy touch addon 4 playmaker的例子里面有怎么拖动gui对象的示例,不过我在拖动ngui的时候发现总是不对,最后终于找到问题。

ngui里localpositon和position区别很大,在set position的时候把space设置为world就可以了。


下面把整个过程演示一遍。

首先建立空的场景,添加一个ngui的2dUI



根据背景大小,设置ui root,这个设置是工作需要,不影响拖动。



摄像头必须注意Layer设置,因为要能被拖动,要和easytouch关联,因为我把unity默认摄像头删了,所以,还要把ngui的摄像头的tag设置为MainCamera



添加一个背景,(无关拖动)



这是要拖动的2d ngui对象,注意Layer,不需要添加自己的脚本,我原来的方法没用对。



设置easytouch, 我把例子里的拖成预制件直接拿来用。这里一定要把ngui的摄像机添加进去。选中enable 2d coliider



开始设置playmaker,基本是照抄例子,山寨万岁。



添加变量



设置动作



继续设置动作,这两个状态的动作和例子里一样。



这个是例子里原来的动作,通过set position设置位置,注意,set position的space要设置成world。



ok,万事大吉,那个人现在可以被拖来拖去了。



状态机里面那个奇怪的状态是个全集事件,添加方法如下。必须把easytouch加入到场景才能有这些事件。



添加以后的状态。



另外,再说下运行中,几个状态。

运行以后,对象停在wait for drag状态,

当触摸开始的时候,转到get current状态后又返回wait for drag状态。

发生拖动到时候,转到on drag状态。


0 0