Vuforia图像追踪,动态创建的对象隐藏显示的坑
刚做的一个项目,使用Unity3D的Vuforia插件进行图像识别,其中有动态生成的游戏对象模型,地形模型放在ImageTarget下,作为ImageTarget的子物体。
动态生成的敌人则有Prefab克隆,通过代码控制生成的敌人的父对象为ImageTarget,结果就是无论是否识别到,敌人都会显示,而地形则不会。
怀疑是Vuforia可能只能对场景中ImageTarget下的对象实现显示隐藏,于是将克隆的游戏对象放到场景中为ImageTarget的子对象,Active设为不可用,在克隆时设为可用。
然后发布APK,手机上测试还是不行。
最终决定自己来控制是否显示,使其在识别到了就显示,未识别则隐藏,使用MeshRenderer组件的是否可以来控制(Vuforia也是通过MeshRenderer来控制显示隐藏的)
最终实现了想要的效果,但是上面的三个条件都要满足。
1、要动态生成的对象要放在场景中且为ImageTarget子对象
2、动态生成的对象也要使用代码控制其为ImageTarget的子对象
3、使用TrackableBehaviour的CurrentStatus当前状态来控制其显示。
相关代码:
var cloneEnemy = GameObject.Instantiate(enemy) as GameObject;
cloneEnemy.SetActive(true);
if (targetGameObject != null)
{
cloneEnemy.transform.parent = targetGameObject.transform;
}
void AfterTrackObject(Transform _transform)
{
if (_transform == null)
return;
if (mTrackableBehaviour != null && (int)mTrackableBehaviour.CurrentStatus > )
{
foreach (var item in _transform.GetComponentsInChildren<MeshRenderer>())
{
item.enabled = true;
}
//gameObject.GetComponent<MeshRenderer>().enabled = true;
//testText.text = "追踪的物体名字为:" + mTrackableBehaviour.Trackable.Name;
}
else
{
foreach (var item in _transform.GetComponentsInChildren<MeshRenderer>())
{
item.enabled = false;
}
//gameObject.GetComponent<MeshRenderer>().enabled = false;
//testText.text = "没有追踪到!";
}
}
目前还不知道是什么原因导致的,经测试,其上任一条件不符合都不行,有知道的还望告知。
Vuforia图像追踪,动态创建的对象隐藏显示的坑的更多相关文章
- JS,Jquery,ExtJs不同脚本动态创建DOM对象
好久不来写东西了,这段时间太慢了,闲了下来看了几篇文章,觉得很好,同时也许咱们大家都能遇到,所以就把它记录下来... 简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主 ...
- 根据图像路径,创建CBitmap对象的方法
因为项目的关系,需要根据图像路径,创建CBitmap对象.起初查资料找到了LoadBitmap这个函数,根据CSDN得 BOOL LoadBitmap ( LPCTSTR lpszResourceNa ...
- Qt Quick 组件和动态创建的对象具体的解释
在<Qt Quick 事件处理之信号与槽>一文中介绍自己定义信号时,举了一个简单的样例.定义了一个颜色选择组件,当用户在组建内点击鼠标时,该组件会发出一个携带颜色值的信号,当时我使用 Co ...
- JS、JQuery和ExtJs动态创建DOM对象
做了个简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主要是使用JavaScript.JQuery.ExtJs动态创建Table对象.动态Table数据填充.多选控制. ...
- 给js动态创建的对象绑定事件
1.使用原生JS动态为动态创建的对象绑定事件 1-1.创建一个function,用来兼容IE8以下浏览器添加事件 function addEvent(el, type, fn) { if(el.ad ...
- 【MFC】动态创建CMFCToolbar图标不显示问题
最近遇到一个问题,需要动态的从xml文件读取一系列图标文件,加载到一个toolbar中,由于使用的是vs2008 with sp1 feature pack,自然想到用CMFCToolbar来做,思路 ...
- js动态创建类对象
1.定义函数,函数中定义类对象 f1=function(){ //定义类 function Pannel(name){ this.name = name; this.print = function( ...
- C#动态创建接口的实现实例对象
本文简单介绍如何动态创建接口interface的实现实例对象,包含两个知识点: 1.如何获取接口interface的所有实现实例对象? 2.如何判断实例对象的构造函数是否有参数? 准备工作 首先新建一 ...
- Unity进阶技巧 - 动态创建UGUI
前言 项目中有功能需要在代码中动态创建UGUI对象,但是在网上搜索了很久都没有找到类似的教程,最后终于在官方文档中找到了方法,趁着记忆犹新,写下动态创建UGUI的方法,供需要的朋友参考 你将学到什么? ...
随机推荐
- DTD总结
DTD 可以检测 XNM 文档的结构是否正确,就好像文章中用来保证结构正确的语法规则一样. 引入 DTD 1.引入私有的 DTD 文件,URI 可以使相对地址或绝对地址 <!DOCTYPE 根元 ...
- [Machine Learning] 机器学习常见算法分类汇总
声明:本篇博文根据http://www.ctocio.com/hotnews/15919.html整理,原作者张萌,尊重原创. 机器学习无疑是当前数据分析领域的一个热点内容.很多人在平时的工作中都或多 ...
- CSS-dl+dt+dd的应用(非常实用)
http://smallpig301.blog.163.com/blog/static/9986093201010262499229/
- PHP变量入门教程(1)基础
基础 PHP 中一个美元符号后面跟上一个变量名称,即表示一个变量.变量的名称是对大小写敏感的. 变量名与 PHP 中其它的标签一样遵循相同的规则.一个有效的变量名由字母或者下划线开头,后面跟上任意数量 ...
- 【Go入门教程1】Go 安装,GOROOT,GOPATH,Go工作空间
Go安装 Windows 安装 访问Golang Code下载页,32 位请选择名称中包含 windows-386 的 msi 安装包,64 位请选择名称中包含 windows-amd64 的.下载好 ...
- MySQL 的 find_in_set 函数使用方法
举个例子来说: 有个文章表里面有个type字段,它存储的是文章类型,有 1头条.2推荐.3热点.4图文...1,12,13 等等 . 现在有篇文章他既是 头条,又是热点,还是图文, type中以 1, ...
- JavaScript学习总结(二)数组和对象部分
pt学习总结(二)数组和对象部分 2016-09-16 分类:WEB开发.编程开发.首页精华暂无人评论 来源:trigkit4 分享到:更多1 对象部分 Object类型 Object ...
- 基于python的文件处理
二.文件操作方法大全 1.os.mknod("test.txt") 创建空文件2.fp = open("test.txt",w) 直接打开一个文件,如果文件不存 ...
- erlang 200w进程测试
参照<programing erlang>书例子,测试erlang创建进程性能 创建N个进程 都wait,然后挨个发送die关闭进程,代码如下: 测试场景:200w进程.MacBook P ...
- 【pymongo】mongodb cursor id not valid error
参考来源: http://stackoverflow.com/questions/10298354/mongodb-cursor-id-not-valid-error http://stackover ...