一、下载并试玩

首先去Asset Store下载该插件,过程不多赘述,下载完并导入。

可以先来体验一下,你就明白这个插件好不好玩了,点击那个Examples.unity,然后就可以试玩了。。

二、尝试自己用一下

创建一个场景,然后把TouchManager及Cursors预制体拖到Scene窗口下,点击运行:

来看一下输出:初始化Unity触摸输入;初始化Unity鼠标输入;没有找到触摸层,给main camera加上标准层。

恩。再来看一下这两个预制体上用到的代码····可以,很牛批,下一题:

继续往场景里加一个cube,然后给cube加上Transformer、Transform Gesture这两个组件,Transformer负责监听TransformGesture的事件并把响应的事件应用到GameObject上:

你会发现,鼠标可以拖动那个cube动。

三、研究插件给的其中一个Demo

由于时间关系,只研究一下Colors这个Demo。

说一下这个游戏怎么玩儿的,就是点击鼠标移动圆圈,圆圈吃圆圈。想要实现双指放大也容易,就是按住ALT键,在圆圈上整两个鼠标定点就行了。

首先来看Camera挂载的代码,很明显就是hit只检测2D物体了,既然游戏里的圆圈是可以被拖动并融合的,所以肯定就是这些圆圈了。

我们来看圆圈,发现Scene这个空物体上挂载了Colors.cs,它用到了Circle预制体,我们来看看这个预制体

发现这个预制体用了两个Collider,一个半径是0.1,一个半径是0.5,并且半径为0.5的是Is Trigger的(下图这两个红色的圆圈),然后有2D刚体组件,并且挂载了Circle.cs,然后还有例行公事的Transform Gesture和Transformer(可以不用管这两个是干啥的,只要记住凡是场景内的物体想要有触摸的效果,就得加上这两个组件)。

我们可以看到Transform Gesture上面有Translation、Rotation、Scaling,意思就是用户可以移动、缩放和旋转圆。Transformer监听TransformGesture事件。

好了,我们来看看Colors.cs文件,其实很短,就41行代码····

/** @author Valentin Simonov / http://va.lent.in/*/using UnityEngine;
using System.Collections.Generic;namespace TouchScript.Examples.Colors
{/// <exclude />public class Colors : MonoBehaviour{public Transform Prefab;public int Total = 10;private List<Color> colors = new List<Color>(){Color.blue,Color.cyan, //蓝绿Color.gray,Color.green,Color.magenta, //洋红Color.red,Color.white,Color.yellow,Color.black};void Start(){var container = transform.Find("Container"); //找到名字为Container的物体for (var i = 0; i < Total; i++){var obj = Instantiate(Prefab) as Transform; //预制体实例化obj.SetParent(container); //设置该circle的父是containerobj.localPosition = new Vector3(Random.Range(-100, 100), Random.Range(-100, 100), 0); //设置该circle的位置obj.GetComponent<Renderer>().material.color = colors[Random.Range(0, colors.Count)]; //设置该circle的颜色}}}
}

我们再来看Circle.cs,也很短,就53行代码....

/** @author Valentin Simonov / http://va.lent.in/*/using UnityEngine;
using TouchScript.Gestures;
using TouchScript.Gestures.TransformGestures;namespace TouchScript.Examples.Colors
{/// <exclude />public class Circle : MonoBehaviour{private bool isDestroyed = false;public Color Kill(){isDestroyed = true;GetComponent<TransformGesture>().Cancel(true, true);GetComponent<TransformGesture>().Cancel(true, true);var color = GetComponent<Renderer>().sharedMaterial.color;Destroy(gameObject);return color;}private void OnTriggerEnter2D(Collider2D other) //当两个Circle碰撞到一起时{if (isDestroyed) return;var gesture = GetComponent<TransformGesture>(); //获取TransformGesture组件if (gesture.State != Gesture.GestureState.Changed && gesture.State != Gesture.GestureState.Began) return;var otherCircle = other.GetComponent<Circle>();if (!otherCircle) return;var otherColor = otherCircle.Kill(); //获取另外一个Circle的颜色,并销毁另外一个Circlevar scale =Mathf.Sqrt(otherCircle.transform.localScale.x*otherCircle.transform.localScale.x +transform.localScale.x*transform.localScale.x); //获取新的半径var color = Color.Lerp(GetComponent<Renderer>().sharedMaterial.color, otherColor, .5f); //获取新的颜色var obj = Instantiate(gameObject) as GameObject; //新创建一个物体obj.transform.SetParent(transform.parent); //继承原Circle的父obj.transform.localPosition = transform.localPosition; //继承原Circle的位置obj.transform.localRotation = transform.localRotation; //继承原Circle的旋转角obj.transform.localScale = new Vector3(scale, 1, scale); //得到新的大小obj.GetComponent<Renderer>().sharedMaterial.color = color; //显示新的颜色Kill(); //销毁原Circle及TransformerGesture的“关注”}}
}

GetComponent<TransformGesture>().Cancel(true, true); 这里表示指针返回到系统,此时取消的指针会被新的(更大的)圆圈及其TransformGesture捕获,因此用户可以继续移动并调整新圆圈的大小。

OK,似乎没什么问题了。就酱。

参考博客:https://www.jianshu.com/p/4e9f0d65f896?from=singlemessage

Unity插件TouchScript初识相关推荐

  1. 最好用的剧情插件:USequencer初识

    最好用的剧情插件:USequencer初识 一.引言 现在几乎所有游戏开场过程中,通常都会有一段唯美的CG动画作为游戏的背景故事介绍.而如果能在游戏过程中也能使用CG动画做过场动画.游戏交通.衔接情节 ...

  2. Unity插件之NGUI学习(4)—— 创建UI2DSprite动画

    创建一个新的Scene.并按 Unity插件之NGUI学习(2)创建UI Root,并在UI Root的Camera下创建一个Panel. 然后在选中Panel,在菜单中选择NGUI->Crea ...

  3. Unity插件-NGUI使用教程

    Unity插件-NGUI使用教程 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 NGUI 一款强大 ...

  4. Unity插件之NGUI学习(8)—— Table和NGUI尺寸转换为世界坐标系尺寸

    依据 Unity插件之NGUI学习(2),创建一个UI Root,在UI Root下创建一个Texture作为背景图,并设置图片,在Wiget下调整大小:然后在UI Root下再创建一个Panel. ...

  5. UNITY插件信息收集

    UNITY插件信息收集 2018.8.7 UNITY超级优化神器 : Amplify Impostors posted on 2018-08-07 20:53 时空观察者9号 阅读(...) 评论(. ...

  6. AR+LBS街景实景红包PokemonGo游戏捉妖夺宝营销解决方案定制开发暨百度高德地图Unity插件SDK

    AR+LBS街景实景红包PokemonGo游戏捉妖夺宝营销解决方案定制开发暨百度高德地图Unity插件SDK 作者 komstone https://blog.csdn.net/komstone/ar ...

  7. Unity接入穿山甲广告(使用unity插件SDK接入)看这一篇就够了

    自己做的小游戏需要接广告,之前尝试过UnityAds和AdMob,但是都有点小问题.UnityAds对国内本土支持不好,Banner广告经常没有内容.Admob基本上都要对接到googlePlay,国 ...

  8. unityar自动识别人脸_三款Unity插件带您玩转人脸识别与模拟

    原标题:三款Unity插件带您玩转人脸识别与模拟 若想让游戏或电影中的虚拟角色表现得更加真实,面部表情是至关重要的.人脸识别技术则借助真人表演来为虚拟角色赋予丰富的表情与面部动作,小至皱眉带动眼部肌肉 ...

  9. 利用Unity插件Anima2D创建2D骨骼动画

    利用Unity插件Anima2D创建2D骨骼动画 创建步骤 导入Anima2D插件 准备2D素材 配置2D骨骼 对2D角色应用IK(反向动力学) 利用Animation创建2D人物动画 创建步骤 导入 ...

最新文章

  1. python——文件和数据格式化
  2. 推荐系统与协作过滤面临的主要问题
  3. 用户用户组及权限管理
  4. 551. 学生出勤记录
  5. Silverlight使用DataGrid的模板列(DataGridTemplateColumn)实现类似TreeListView控件的效果
  6. Lansys PV 1.2 1CD(化工容器强度计算软件)
  7. Eclipse 下载源码插件
  8. 2022牛客寒假算法基础集训营5 E.复苏小孩 详解
  9. html崩溃手机代码15,这12行代码分分钟让你电脑崩溃手机重启
  10. 测绘资质专业类别该如何区分并选择合适的专业
  11. 电磁场与仿真软件(22)
  12. SVPWM与SPWM的区别
  13. 怎么用python绘制柱状图_如何用python快速简单的制作柱状图?
  14. 录像加文档,双管齐下!腾讯内部大热的Java知识宝典
  15. sklearn逻辑回归为什么要归一化
  16. [转载]一步一步教你如何在Virtualbox虚拟机中安装Remix
  17. java高校后勤报修系统
  18. SQL求出小于45岁的各个老师所带的大于12岁的学生人数
  19. 据挖掘中所需的概率论与数理统计知识
  20. 诊断(UDS)协议栈设计-总体架构设计

热门文章

  1. Android功能强大,UI 简洁,交互优雅的通用弹窗
  2. PHP 连接数据库的3种方式
  3. 典型关联分析(CCA)算法原理
  4. XDOJ 171-考勤系统
  5. outline 轮廓属性
  6. 旺季翻盘看这里!揭秘2020亚马逊黑五网一营销爆火新玩法!
  7. 自媒体人必备的4个素材网站,再也不用担心找不到素材
  8. Redis案例实战_微信抢红包
  9. hive 重启后台hive服务
  10. 角逐利器 MBR一体化污水处理设备实现市政污水固液分离