Unity+Vuforia增强现实:实时替换模型
来源:互联网 发布:什么软件购物返利 编辑:程序博客网 时间:2024/05/16 10:17
本文实现:
unity基于高通AR开发实时替换模型,如图,识别成功后,点击按钮切换显示模型。
识别成功截图
点击按钮后
再次点击按钮又显示第一张,如此切换。
实现原理
编写脚本实现高通识别接口,在识别成功后加以判断需要显示的模型即可。
详细介绍参考脚本ModelSwap.cs
using UnityEngine;using System.Collections;using Vuforia;public class ModelSwap : MonoBehaviour { //高通的追踪类对象,在检视面板中把对应的ImageTarget拖过来就可获得 public TrackableBehaviour theTrackable; //替换模型的预制体,在检视面板中将需要替换的预制提拖过来 public Transform myModelPrefab; //模型替换的标志 private bool mSwapModel = false; //判断替换模型是否为空用于模型切换判断 private static Transform myModelTrf=null; // Use this for initialization void Start () { if (theTrackable == null) { Debug.Log ("Warning: Trackable not set !!"); } } // Update is called once per frame void Update () { if (mSwapModel && theTrackable != null) { SwapModel(); mSwapModel = false; } //监听android物理按钮返回键 if (Input.GetKeyDown(KeyCode.Escape)){ Application.Quit(); } } void OnGUI() { //点击按钮切换模型 if (GUI.Button (new Rect(10,10,200,100), "Swap Model")) { mSwapModel = true; } } //切换模型函数 private void SwapModel() { //如果myModelTrf为空,则创建它并替换原模型 if (myModelTrf == null) { //获得ImageTarget对象 GameObject trackableGameObject = theTrackable.gameObject; //使其所有“孩子”不可用,相当于隐藏了 for (int i = 0; i < trackableGameObject.transform.childCount; i++) { Transform child = trackableGameObject.transform.GetChild (i); child.gameObject.SetActive(false); } //用预制体模型作为“孩子”并激活 if (myModelPrefab != null) { myModelTrf = GameObject.Instantiate (myModelPrefab) as Transform; myModelTrf.parent = trackableGameObject.transform; //大小和位置都是相对parent的 myModelTrf.localPosition = new Vector3 (0f, 0.6f, 0f); myModelTrf.localRotation = Quaternion.identity; myModelTrf.localScale = new Vector3 (0.2f, 0.2f, 0.2f); myModelTrf.gameObject.SetActive(true);//激活 } } //如果不为空,则销毁它,并重新使用原模型 else { //销毁替换模型 Destroy(myModelTrf.gameObject); //将原来的“孩子”激活 GameObject trackableGameObject = theTrackable.gameObject; for (int i = 0; i < trackableGameObject.transform.childCount; i++) { Transform child = trackableGameObject.transform.GetChild (i); child.gameObject.SetActive(true); } } }}
实现步骤
(1)导包,基本设置,这里不解释,默认显示一个立方体
(2)创建一个预制体作为替换模型,如图中的球
(3)编写如上脚本ModelSwap.cs,加给AR Camera
(4)调试运行,或打包apk测试
0 0
- Unity+Vuforia增强现实:实时替换模型
- [StarFromHere] Unity+vuforia开发增强现实
- unity+高通vuforia开发增强现实(AR)基础
- 增强现实(AR)笔记2:Vuforia+Unity例程ObjectRecognition
- unity+高通vuforia开发增强现实(AR)教程
- AR(增强现实) unity+vuforia 基础教程(1)!
- AR(增强现实) unity+vuforia 基础教程(2)!
- (AR 增强现实)Vuforia+Unity 柱体识别
- 【Vuforia官方文档】在Unity中拖拽增强现实物体
- 【Vuforia】基于Vuforia增强现实开发(二)之模型移动
- 【Vuforia】基于Vuforia增强现实开发(三)之模型旋转
- Unity3d vuforia增强现实(AR)
- unity->高通增强现实unity制作->动画模型制作
- unity+高通vuforia开发增强现实(AR)教程(一)
- unity+高通vuforia开发增强现实(AR)教程(二)
- unity+高通vuforia开发增强现实(AR)教程(三)
- unity+高通vuforia开发增强现实(AR)教程(一)
- unity+高通vuforia开发增强现实(AR)教程(二)
- Office 365 IT Professional —— 配置External User Sharing
- ACdream 1408 "Money, Money, Money"(找规律)
- jQuery Validate 表单验证
- 使用cmd打印log "adb logcat" 并且处理乱码的问题
- Single Number III 两个不同的数出现一次,其余两次,异或
- Unity+Vuforia增强现实:实时替换模型
- vs2010调试
- R语言_功效分析
- S3C6410内存初始化
- android屏幕适配
- 中兴2015校园招聘笔试题 +部分 答案(自己做的)
- BLToolkit AzureSql
- 【Sublime Text 3】Sublime Text 3 - cracked 3083\3085
- 别让Android Studio的缓存文件占据你的C盘