【发布时间】:2017-05-21 06:11:07
【问题描述】:
我有 3D 对象,我想通过关闭其渲染使其不可见。但是当我在运行时运行代码时,它会显示 ::
" 回调中的异常:System.Reflection.TargetInvocationException: 调用目标已抛出异常。---> UnityEngine.MissingComponentException: “3dObject”游戏对象没有附加“渲染器”,但脚本正在尝试访问它。“
我想知道是否没有渲染器,那么我如何能够在场景/游戏视图中看到该对象。而且在检查器中什么也没有(网格渲染器/渲染器/网格过滤器)。
我正在使用 c# :this.GetComponent<Renderer>().enabled=true;
我正在使用 vuforia 并希望在调用 Tracking Lost 函数后将最后跟踪的对象保留在屏幕上。
或 有没有其他方法可以做到这一点...?
我是团结的新手,我知道这是一个非常基本的问题,但没有得到任何东西。需要帮忙..
【问题讨论】:
-
我在附件中没有看到网格渲染器组件。 'this.GetComponent
().enabled=true;'只会在这个游戏对象上获得渲染器组件,而不是在子游戏对象上。我认为您的渲染器位于此处也不存在的网格(网格过滤器)上。 -
任何渲染器都不存在,但它仍然存在于场景/游戏视图中......它怎么可能......我没有得到。我只是从资产商店导入一个 .fbx 文件。但是在检查器中没有渲染器。怎么样?
-
@Nitesh 因为该游戏对象的一个(或多个)子对象附加了 MeshRenderer。
-
对不起..在这个模型中有一个很长的子列表,其中一个是蒙皮网格渲染器。现在我的疑虑很清楚了。但有一件事,如何访问该特定 3D 模型的子节点上存在的所有渲染器
我正在使用 ::Renderer[] ren = this.GetComponentsInChildren<Renderer>();
标签: c# unity3d vuforia renderer