Unity+SenseAR教程:用手势发射爱心【源码】

摘要:Unity+SenseAR2.3开发的AR应用,基于手势识别功能,发射你的爱心~

洪流学堂,让你快人几步。你好,我是你的技术探路者郑洪智,你可以叫我大智。

今天开头就不絮叨了,一句“名言”送给大家,然后咱们把代码微微的一写。

“虽然今天是情人节,但怎会比学习带来更多的多巴胺呢?”—— 澹深苟

最终效果

这个教程中使用了最新的SenseAR,可以在很短时间内实现手势的识别。

咱们这个教程就是识别手枪、比心和爱你的手势,然后在屏幕上呈现心心的粒子效果。

最终效果.gif

建立工程

注意必须使用Unity 2018.4版本,建议使用2018.4中国增强版最新版。
路径中一定不要有中文,否则打包可能出现问题。

创建工程.gif

安装SenseAR 插件

在Packamager中搜索SenseAR XR plugin,我在这用的是最新版的1.1.0-preview.1版本。

安装sensear.gif

导入示例工程

SenseAR是个新鲜的东西,之前都没接触过,所以最好的开始就是先看下示例,看看能做什么。
如何导入示例工程呢?

1、在Project窗口的Packages中找到SenseAR XR Plugin目录
2、在目录上右键菜单中选择Show in Explorer
3、在打开的目录进入com.unity.xr.arstand@1.1.0-preview.1\Samples~目录
4、将目录中的Example文件夹拖到Unity的Project窗口的Assets文件夹中。

具体流程看到下图:

导入example.gif

查看示例

导入之后呢,你会发现这里面有很多很多的场景,手势场景是这个GestureDetect

哇,还有那么多其他场景都是什么用呢?大智这几天会录制一个SenseAR全功能解析教程,记得关注哦(公众号:洪流学堂 b站:大智_Unity技术探路者

这个场景是没办法在电脑上运行的,只能发布到Android手机上运行。

发布手势示例

发布有以下几步:
1、确保安装好了Android发布的环境(JDK目前Unity已经内置了,Android SDK需要自行下载,可以使用Android Studio管理Android SDK),以及Unity的Android Support(推荐在Unity Hub中安装)。

android support.gif

2、在Unity的Build Settings中将平台切换为Android。

切换到android.gif

3、配置工程的Player Settings。

  • Package Name修改一下,别是默认的那个就行,我这设置为com.Company.ShootLove
  • Mininum API Level设置为Android 7.0 API level 24

4、 在手机上安装SenseAR2.3,下载地址是http://openar.sensetime.com/sdks
可能需要先卸载旧版本:小米预装版本SenseAR在应用设置里面名称为ARServer,OPPO预装版本SenseAR的名字为ARUnit

5、将手机开启开发者模式,USB连接到电脑上

6、记得打开GestureDetect场景,点击Unity菜单栏File > Build and Run,选择一个存放apk的路径。

体验手势App

如果打开黑屏检查下是否安装了SenseAR2.3,下载地址是http://openar.sensetime.com/sdks

最开始要同意使用摄像头的权限。

示例.gif

SenseAR支持的手势有以下14种:

来源:http://openar.sensetime.com/docs

开发

好,到这呢,我们已经体验了一把SenseAR强大的手势识别的功能了,那如何用手势发射爱心呢?

我们决定用三个手势发射爱心:分别是gun,finger_heart(比心),iloveu三个。

好,回到Unity工程里面。看一下AR Camera上的ARStandGuesturePainter中的代码,所有手势相关的代码都是在这里面的。

现在我们的思路就是判断出gun,finger_heart(比心),iloveu三个手势之后在界面显示爱心的特效。

1 做一个心的粒子效果

在AR Camera物体下创建一个粒子效果,这样粒子效果一会能显示在咱们的镜头中。粒子效果是可以在Scene和Game中预览的,最终效果在真机上也一致。

粒子效果的贴图用的是下面的这个白色的小心心(你可以直接下载使用),为啥要用白色的呢?因为这样可以在粒子系统里调它的颜色,五颜六色,随心所欲。如果你直接用个红色的心心,那就没办法叠加出所有的颜色了。

粒子效果的贴图,图片是白色的哦,不是没有哦,右键下载

下面就是你的舞台了,将这个粒子效果调到你满意为止。

大智审美缺陷党,调的效果如下:

粒子.gif

2 改造脚本

首先在ARStandGuesturePainter脚本中添加一个public的成员变量,用于关联爱心的粒子特效。

public GameObject HeartParticles;

然后在SetGuestureInfo方法的最后添加下面几行:

if (guestureInfo.HandGestureType == ArHandGestureType.GUN ||
            guestureInfo.HandGestureType == ArHandGestureType.I_LOVE_YOU ||
            guestureInfo.HandGestureType == ArHandGestureType.FINGER_HEART)
        {
            HeartParticles.SetActive(true);
        }
        else
        {
            HeartParticles.SetActive(false);
        }

然后在Inspector上将粒子效果的物体赋上去,就OK啦。

3 发布真机

最终效果.gif

更多探索

后面呢,大智还想做的更高级一些,可以根据指头的方向从指尖发射。大概思路如下,你可以和大智一起探索哦。

1、在ARStandGuesturePainter脚本的m_Points成员变量中获取到20个手指关节的位置。20个顶点与手指的位置关系如下图。

2、根据位置计算出来手指的方向,在对应方向上播放粒子效果。

本教程源码及后续更新

由于源码后续会更新,就不直接打包传在这里了。
本工程的持续更新源码可以在洪流学堂公众号回复爱心获取。

大智这几天会录制一个SenseAR全功能解析教程,记得关注哦(公众号:洪流学堂 b站:大智_Unity技术探路者


好了,今天就絮絮叨叨到这里了,祝有情人终成眷属♥。
没讲清楚的地方欢迎评论。

我是大智,你的技术探路者,下次见!

别走!点赞收藏哦!

好,你可以走了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容