easy touch利用playmaker拖动ngui对象

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

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

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

不能用playmaker的set position动作去设置推动对象的位置,必须在脚本里用transform.postion=...的方式来设置拖动对象位置。

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

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

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

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

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

这是要拖动的2d ngui对象,注意Layer,添个自己写的脚本,注意要添加Collider才能被拖动

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

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

添加变量

设置动作

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

这个是例子里原来的动作,通过set position设置位置

这里,要改用脚本,脚本内容很简单

using UnityEngine;
using System.Collections;

public class mytest : MonoBehaviour {
	public void world(Vector3 position){
		transform.position = position;
	}
}

然后用send message的方法,调用脚本。

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

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

添加以后的状态。

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

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

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

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

时间: 2024-07-30 03:27:21

easy touch利用playmaker拖动ngui对象的相关文章

游戏摇杆之Easy Touch 3教程

之前已经介绍过Unity自带的摇杆Joystick,它用起来很简单.但是它也存在很多局限,不能全部满足普通mmo手游的一些需求,例如:要能方便地更好素材:能指定在某个区域显示,或者只有在该区域触摸时才出现等等.而这些功能,Easy Touch插件都已经帮你实现了.全部是可配置.大家可以从Asset Store上购买,或者使用free版. (可随意分享,请注明原文出处http://blog.csdn.net/janeky/article/details/17364903) 实例 还是用上次例子来实

利用脚本对游戏对象进行操作

1.创建游戏对象 GameObject.CreatePrimitive(),参数为系统默认的球体,立方体等游戏对象. AddComponent(),为游戏对象添加组件. protected GameObject obj; // Use this for initialization void Start () { obj=GameObject.CreatePrimitive(PrimitiveType.Cube); obj.AddComponent("Rigidbody"); //添加

利用HttpWebRequest实现实体对象的上传

一 简介 HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择.它们支持一系列有用的属性.这两个类位 于System.Net命名空间,默认情况下这个类对于控制台程序来说是可访问的.请注意,HttpWebRequest对象不是利用new关键字通过构 造函数来创建的,而是利用工厂机制(factory mechanism)通过Create()方法来创建的.另外,你可能预计需要显式地调用一个“Send”方法,实际上不需要.接下来调用 HttpWebRequ

Unity手游之路<六>游戏摇杆之Easy Touch 3教程

之前已经介绍过Unity自带的摇杆Joystick,它用起来很简单.但是它也存在很多局限,不能全部满足普通mmo手游的一些需求,例如:要能方便地更好素材:能指定在某个区域显示,或者只有在该区域触摸时才出现等等.而这些功能,Easy Touch插件都已经帮你实现了.全部是可配置.大家可以从Asset Store上购买,或者使用free版. (可随意分享,请注明原文出处http://blog.csdn.net/janeky/article/details/17364903) 实例 还是用上次例子来实

ngx-bootstrap使用03 Alerts组件、利用Object.assign复制对象

1 Alerts 该组件用于给用户操作提供反馈信息或者提供一些警告信息 2 用法 2.1 下载ngx-bootstrap依赖 参考博文:点击前往 2.2 在模块级别导入AlertModule模块 技巧01:由于AlertModule是一个工具组件,在实际开发中一般都是在共享模块进行导入的 import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; impo

java利用反射机制判断对象的属性是否为空

java利用反射机制判断对象的属性是否为空: Map<String,String> validateMap = new LinkedHashMap<String, String>(); validateMap.put("serial", "编号");validateMap.put("major", "专业"); public static <T> String validateFiledIs

Easy Touch 摇感控制人物移动

public class joystick : MonoBehaviour { public float Speed;             //定义速度 private CharacterController CC; //定义人称控制器 //代码启动 private void OnDisable() { //启动调用OnMove,OnMoveEnd EasyJoystick.On_JoystickMove += OnMove; EasyJoystick.On_JoystickMoveEnd

Unity3D拖动任意对象GameObject移动到任意地方

今天不是很忙,研究了一下拖拽GameObject移动到任意位置,沿x轴和z轴移动,其他的也就不说了,上代码: using UnityEngine; using System.Collections; public class DragAndDrog : MonoBehaviour {     private GameObject target;     private bool isMouseDrag;     private Vector3 screenPosition;     privat

【LeetCode】two num 利用comparable接口 对对象进行排序

题目two num 题意:给定一个整数数组和一个目标值,要求在数组中找到两个数,使得它们的和相加等于目标值,并且返回两个数的下标 思路:1.如果使用暴力,时间复杂度为O(n^2) 2.可以先将所有数进行排序,从最大值和最小值开始匹配再根据和目标值的比较移动,知道找到结果,时间复杂度为O(nlog(n)) 知识点:comparable 接口的使用,利用其进行对象的自然排序,相关文章 public class Solution { static class Node implements Compa