Vuforia图像追踪,动态创建的对象隐藏显示的坑

rss"/>

刚做的一个项目,使用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图像追踪,动态创建的对象隐藏显示的坑的更多相关文章

  1. JS,Jquery,ExtJs不同脚本动态创建DOM对象

    好久不来写东西了,这段时间太慢了,闲了下来看了几篇文章,觉得很好,同时也许咱们大家都能遇到,所以就把它记录下来... 简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主 ...

  2. 根据图像路径,创建CBitmap对象的方法

    因为项目的关系,需要根据图像路径,创建CBitmap对象.起初查资料找到了LoadBitmap这个函数,根据CSDN得 BOOL LoadBitmap ( LPCTSTR lpszResourceNa ...

  3. Qt Quick 组件和动态创建的对象具体的解释

    在<Qt Quick 事件处理之信号与槽>一文中介绍自己定义信号时,举了一个简单的样例.定义了一个颜色选择组件,当用户在组建内点击鼠标时,该组件会发出一个携带颜色值的信号,当时我使用 Co ...

  4. JS、JQuery和ExtJs动态创建DOM对象

    做了个简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主要是使用JavaScript.JQuery.ExtJs动态创建Table对象.动态Table数据填充.多选控制. ...

  5. 给js动态创建的对象绑定事件

    1.使用原生JS动态为动态创建的对象绑定事件 1-1.创建一个function,用来兼容IE8以下浏览器添加事件 function addEvent(el, type, fn) {  if(el.ad ...

  6. 【MFC】动态创建CMFCToolbar图标不显示问题

    最近遇到一个问题,需要动态的从xml文件读取一系列图标文件,加载到一个toolbar中,由于使用的是vs2008 with sp1 feature pack,自然想到用CMFCToolbar来做,思路 ...

  7. js动态创建类对象

    1.定义函数,函数中定义类对象 f1=function(){ //定义类 function Pannel(name){ this.name = name; this.print = function( ...

  8. C#动态创建接口的实现实例对象

    本文简单介绍如何动态创建接口interface的实现实例对象,包含两个知识点: 1.如何获取接口interface的所有实现实例对象? 2.如何判断实例对象的构造函数是否有参数? 准备工作 首先新建一 ...

  9. Unity进阶技巧 - 动态创建UGUI

    前言 项目中有功能需要在代码中动态创建UGUI对象,但是在网上搜索了很久都没有找到类似的教程,最后终于在官方文档中找到了方法,趁着记忆犹新,写下动态创建UGUI的方法,供需要的朋友参考 你将学到什么? ...

随机推荐

  1. 项目里面的某个资源文件(比如plist、音频等)无法使用

    检查:Build Phases -> Copy Bundle Resources

  2. PHP连接mysql数据库,并将取出的数据以json的格式输出

    <?php error_reporting(E_ALL || ~E_NOTICE); header("Access-Control-Allow-Origin:*");//此处 ...

  3. 【转】8G内存下MySQL的优化详细方案

    对于任何一个数据库管理系统来说,内存的分配使用绝对可以算的上是其核心之一了,所以很多希望更为深入了解某数据库管理系统的人,都会希望一窥究竟,我也不例外. 这里给出方案 按照下面的设置试试看: key_ ...

  4. ubuntu下安装chrome

    首先.题主在试过直接ubuntu终端命令安装chrome失败. 把经历过的错误稍微提一下: 在终端输入 下载安装包 sudo wget https://dl.google.com/linux/dire ...

  5. spring 的IoC的个人理解

    1.ioc IoC的概念介绍 ( a).依赖注入, 分为依赖 和 注入  , 其实依赖是一种耦合方式, 通过spirng在运行时将这种依赖关系完成, 达到解耦目的, 同时达到代码重用, 方便测试,更加 ...

  6. UVALive5031 Graph and Queries(Treap)

    反向操作,先求出最终状态,再反向操作. 然后就是Treap 的合并,求第K大值. #include<cstdio> #include<iostream> #include< ...

  7. JVM 1.6 GC

    JVM调优是一门艺术. JVM调优的重点是减少Major GC的次数,因为Major GC会暂停程序比较长的时间.如果Major GC的次数比较多,意味着应用程序的JVM内存参数需要调整. JVM内存 ...

  8. Linux 第06天

    Linux 第06天 1.SAMBA服务器————(linux和windows的文件共享) 1.1 安装 yum install samba -yum 1.2 配置文件 /etc/samba/smb. ...

  9. [转]Mac OS X El Capitan(10.11)显示隐藏文件命令失效解决方法

    在Mac全新的系统El Capitan中,原先的显示系统中所有的隐藏文件的指令似乎失效了,只有重启以后才能显示,其实还有一个更简单的办法: 先在终端输入: defaults write com.app ...

  10. JavaScript闭包深入解析

    for (var i=1; i<=5; i++) { setTimeout( function timer() { console.log( i ); }, i*1000 ); } --上面这段 ...