下载高通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模型的行为脚本相关推荐

  1. 【Unity 03】高通 AR SDK基本使用以及项目发布

    PS:本系列笔记将会记录我此次在北京学习Unity开发的总体过程,方便后期写总结,笔记为日更. 笔记内容均为 自己理解,会有遗漏处,不保证每个都对,仅供参考 Part 1 网站注册: 官网:https ...

  2. AR!!!高通Vuforia-iOS-SDK 和官方Demo 集成到iOS 项目中所需要注意的几点.

    AR!!!高通Vuforia-iOS-SDK 和官方Demo 集成到iOS 项目中所需要注意的几点. 首先,要说明一下,博主是一名AR小白,根据公司的计划,要我往Vuforia iOS原生 + 项目i ...

  3. 基于unity+高通AR项目的一些总结

    今天,公司做的第一款AR项目终于在苹果appstore上架了.将近三个多月的踩坑和摸索也终于告一段落了,接下来就是不断的进行版本优化和更新,这将是一个漫长的过程.在此,对自己三个多月的开发做一个阶段性 ...

  4. 高通AR增强现实Unity3D

    高通AR增强现实Unity3D | 浏览: 780 | 更新: 2013-04-02 13:04 35 75 AR: 增强现实,台湾翻译叫做扩张实境 1.注册.然后下载sdk(注册账号主要是为了第3步 ...

  5. unity开发-高通Ar

    今天没什么事干,就来搞下这个高通AR,用unity做一个简单的小demo,我会把原项目发给大家,顺便说下步骤,让大家看下,一起学习下. 骚年们先看下效果图吧! 最终项目是发布在手机上的,然后运行,扫描 ...

  6. 基于高通SNPE推理引擎的yolov5目标检测算法

    上图源自Snapdragon Neural Processing Engine SDK Reference Guide,它展示了一个Deep Learning Neural Network在SNPE环 ...

  7. 高通 OpenXR SDK 使用指南(2)

    高通 OpenXR SDK 使用指南(2) 1.5 OpenXR 生命周期 1.5 OpenXR 生命周期 下图是 OpenXR 框架生命周期的流转过程. 此图中描述了以下过程: 应用程序首先使用 x ...

  8. 高通AR加视屏解决方案

    按到以下教程制作出现以下问题 1.视频不能播放 解决方案:1.加入SceneManager 2.给ARCamera加上PlayVideo.cs 问题2:勾选auto play后,还是不能自动播放 解决 ...

  9. 高通AR增强现实最新教程unity3d

    高通AR增强现实最新教程 之前网上很多有关于高通AR增强现实的教程,教我们unity的龙哥跟我们说这方面的时候便去搜了搜,但是很不巧的是,这玩意在前几天刚刚更新了,所以.......这应该是目前最新的 ...

最新文章

  1. Solr -- Solr Facet 1
  2. python学习札记20210123
  3. java集合sort底层实现_Java面试总结系列之Collections.sort()
  4. 高级线性表——静态链表(最全静态链表解读)
  5. 计算机系学生的职业生涯作文,医学生职业生涯规划的作文800字
  6. 每天一道LeetCode-----有效回文串
  7. 雨中的蚊子为啥不会被雨滴砸死?
  8. docker 修改阿里镜像源_使用阿里云容器镜像服务托管私有Docker镜像
  9. python测试代码怎么写_如何使用python做单元测试?
  10. 安全界的硬核盛会要来了!2020北京网络安全大会倒计时100天
  11. [洛谷P1156][codevs1684]垃圾陷阱
  12. Python在线 基础教程
  13. 砍价小程序怎么变成二维码(小程序码)
  14. 电脑能登录QQ和微信,但是打不开网页浏览器
  15. 魅族更新Android10,魅族16S升级90hz?Flyme安卓10如约而至
  16. 「Hortic Res」APETALA2的同源物CaFFN可调节辣椒的开花时间
  17. java 文本框 虚体字_虚字的意思、虚的繁体字、虚的笔顺笔画、虚字部首和繁体字虚的意思...
  18. 智能温室的优缺点,你都知道哪些?
  19. javascript按照期望的顺序给对象数组排序,中文汉字大写数字排序
  20. R语言数据框中创建新的变量的三种方法

热门文章

  1. 楼宇智能化豪门系列- 北斗武当之 江森自控
  2. linux 文件cache,Linux下哪些文件在消耗我们的Cache?
  3. 今天发现有道桌面词典打开屏幕取词功能时,会导致mremote,visionapp等软件僵死!!!
  4. Facebook开源Linux内核组件和工具:BPF、Btrfs、Netconsd、Cgroup2、PSI、Oomd
  5. layui弹出层的表单验证
  6. 移动安全-GTS-MBA-targetSdkVersion
  7. 2023年东北大学计算机科学与技术考研上岸前辈初复试备考经验指导
  8. ArcGIS 实验理论基础二十 地形特征点的提取
  9. 网页版百度地图突然要键盘才能移动地图_怎样才能让自己的网站容易被百度收录?...
  10. 计算机主机电源是否都一样,一般计算机电源都在多少电压?