基于高通AR SDK的Demo总结(一)——常规3D模型的行为脚本
下载高通AR SDK以及在Unity中的基本搭建不再阐述,具体给出dzyi大神的文章以便参阅:http://blog.csdn.net/dzyi_/article/details/22892641
这里主要是对将识别的3d人物模型做一定的脚本处理,使其具有一定的交互以及行为。
正文:
一、目的:
1、使模型具有自己的行为,让其一直重复一个个的动作;
2、点击人物模型头部时让其发出声音,并使其脸部有不同的变化;
二、模型资源处理:
1、在模型头部给予一个碰撞器,并调试成合适大小;
2、create一个animator controller,然后在annimator controller中添加一个parameter,其名为next的bool类型参数,然后将各个动作添加进来,然后translation条件为next值为true。这里的目的就是让模型能不停地发生动作;
3、将脸部动作的动画和声音文件都放在相应目录的新建的Resources文件夹下。
三、人物控制脚本(BehaviourController.cs):
using UnityEngine;
using System.Collections;public class BehaviourController : MonoBehaviour
{private Animator animator;private AnimatorStateInfo currentAnimationState;private AnimatorStateInfo preAnimationState;public AnimationClip[] faceClips;//加载脸部动画片段public string[] faceMotionName;//存储动画片段的序号public AudioClip[] audioClips;//存储声音片段public bool goNext = true;public float delayedTime = 8.0f;// Use this for initializationvoid Start(){initialize();}// Update is called once per framevoid Update() {GetTheMouse();AnimatorActive(); }private void initialize(){animator = transform.GetComponent<Animator>();currentAnimationState = animator.GetCurrentAnimatorStateInfo(0);preAnimationState = currentAnimationState;faceClips = Resources.LoadAll<AnimationClip>("FaceMotion");audioClips = Resources.LoadAll<AudioClip>("AudioVoice");faceMotionName = new string[faceClips.Length];for (int i = 0; i < faceClips.Length; i++){faceMotionName[i] = faceClips[i].name;}StartCoroutine(RundomChangeMotion());//延时播放动画}
private void AnimatorActive()
{if (animator.GetBool("Next")){currentAnimationState = animator.GetCurrentAnimatorStateInfo(0);if (currentAnimationState.nameHash != preAnimationState.nameHash){animator.SetBool("Next", false);preAnimationState = currentAnimationState;}}
}private void GetTheMouse()
{if (Input.GetMouseButtonDown(0)){RaycastHit hitInfo;if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hitInfo, Mathf.Infinity)){if (hitInfo.collider.tag == "face"){ChangeFaceMotion();ChangeVoice();}}}
}private void ChangeVoice(){if (audio.isPlaying){audio.Stop();}int randomIndex = Random.Range(0, audioClips.Length);audio.clip = audioClips[randomIndex];audio.Play();}private void ChangeFaceMotion(){animator.SetLayerWeight(1, 1);int randomIndex = Random.Range(0, faceMotionName.Length);animator.CrossFade(faceMotionName[randomIndex], 0);}IEnumerator RundomChangeMotion(){while (true){if (goNext){animator.SetBool("Next", true);}yield return new WaitForSeconds(delayedTime);}}
}
代码比较简单,只是稍稍实现人物运行和点击头部播放声音和脸部变化的简单功能。下面上传几个效果图,额,当然是图片。。懒得做动态图了。。。。
使用说明和APK在网盘,有兴趣可以下载试试求指教。
链接:http://pan.baidu.com/s/1c0nNT3i 密码:ktln
下篇写个异步加载吧,毕竟场景渲染的东西多了切换场景是会蛮卡的,这时候就需要异步加载了。
基于高通AR SDK的Demo总结(一)——常规3D模型的行为脚本相关推荐
- 【Unity 03】高通 AR SDK基本使用以及项目发布
PS:本系列笔记将会记录我此次在北京学习Unity开发的总体过程,方便后期写总结,笔记为日更. 笔记内容均为 自己理解,会有遗漏处,不保证每个都对,仅供参考 Part 1 网站注册: 官网:https ...
- AR!!!高通Vuforia-iOS-SDK 和官方Demo 集成到iOS 项目中所需要注意的几点.
AR!!!高通Vuforia-iOS-SDK 和官方Demo 集成到iOS 项目中所需要注意的几点. 首先,要说明一下,博主是一名AR小白,根据公司的计划,要我往Vuforia iOS原生 + 项目i ...
- 基于unity+高通AR项目的一些总结
今天,公司做的第一款AR项目终于在苹果appstore上架了.将近三个多月的踩坑和摸索也终于告一段落了,接下来就是不断的进行版本优化和更新,这将是一个漫长的过程.在此,对自己三个多月的开发做一个阶段性 ...
- 高通AR增强现实Unity3D
高通AR增强现实Unity3D | 浏览: 780 | 更新: 2013-04-02 13:04 35 75 AR: 增强现实,台湾翻译叫做扩张实境 1.注册.然后下载sdk(注册账号主要是为了第3步 ...
- unity开发-高通Ar
今天没什么事干,就来搞下这个高通AR,用unity做一个简单的小demo,我会把原项目发给大家,顺便说下步骤,让大家看下,一起学习下. 骚年们先看下效果图吧! 最终项目是发布在手机上的,然后运行,扫描 ...
- 基于高通SNPE推理引擎的yolov5目标检测算法
上图源自Snapdragon Neural Processing Engine SDK Reference Guide,它展示了一个Deep Learning Neural Network在SNPE环 ...
- 高通 OpenXR SDK 使用指南(2)
高通 OpenXR SDK 使用指南(2) 1.5 OpenXR 生命周期 1.5 OpenXR 生命周期 下图是 OpenXR 框架生命周期的流转过程. 此图中描述了以下过程: 应用程序首先使用 x ...
- 高通AR加视屏解决方案
按到以下教程制作出现以下问题 1.视频不能播放 解决方案:1.加入SceneManager 2.给ARCamera加上PlayVideo.cs 问题2:勾选auto play后,还是不能自动播放 解决 ...
- 高通AR增强现实最新教程unity3d
高通AR增强现实最新教程 之前网上很多有关于高通AR增强现实的教程,教我们unity的龙哥跟我们说这方面的时候便去搜了搜,但是很不巧的是,这玩意在前几天刚刚更新了,所以.......这应该是目前最新的 ...
最新文章
- Solr -- Solr Facet 1
- python学习札记20210123
- java集合sort底层实现_Java面试总结系列之Collections.sort()
- 高级线性表——静态链表(最全静态链表解读)
- 计算机系学生的职业生涯作文,医学生职业生涯规划的作文800字
- 每天一道LeetCode-----有效回文串
- 雨中的蚊子为啥不会被雨滴砸死?
- docker 修改阿里镜像源_使用阿里云容器镜像服务托管私有Docker镜像
- python测试代码怎么写_如何使用python做单元测试?
- 安全界的硬核盛会要来了!2020北京网络安全大会倒计时100天
- [洛谷P1156][codevs1684]垃圾陷阱
- Python在线 基础教程
- 砍价小程序怎么变成二维码(小程序码)
- 电脑能登录QQ和微信,但是打不开网页浏览器
- 魅族更新Android10,魅族16S升级90hz?Flyme安卓10如约而至
- 「Hortic Res」APETALA2的同源物CaFFN可调节辣椒的开花时间
- java 文本框 虚体字_虚字的意思、虚的繁体字、虚的笔顺笔画、虚字部首和繁体字虚的意思...
- 智能温室的优缺点,你都知道哪些?
- javascript按照期望的顺序给对象数组排序,中文汉字大写数字排序
- R语言数据框中创建新的变量的三种方法
热门文章
- 楼宇智能化豪门系列- 北斗武当之 江森自控
- linux 文件cache,Linux下哪些文件在消耗我们的Cache?
- 今天发现有道桌面词典打开屏幕取词功能时,会导致mremote,visionapp等软件僵死!!!
- Facebook开源Linux内核组件和工具:BPF、Btrfs、Netconsd、Cgroup2、PSI、Oomd
- layui弹出层的表单验证
- 移动安全-GTS-MBA-targetSdkVersion
- 2023年东北大学计算机科学与技术考研上岸前辈初复试备考经验指导
- ArcGIS 实验理论基础二十 地形特征点的提取
- 网页版百度地图突然要键盘才能移动地图_怎样才能让自己的网站容易被百度收录?...
- 计算机主机电源是否都一样,一般计算机电源都在多少电压?