【发布时间】:2021-12-09 02:20:48
【问题描述】:
我想获取在特定相机截锥体内可见的所有游戏对象。游戏场景如下图所示。
场景包含各种游戏对象,例如树木、建筑物、汽车和行人。我想访问那些游戏对象。怎么可能接近?我可以使用哪种 Unity 方法?请帮忙。
【问题讨论】:
-
Unity 有一个函数 OnBecameVisible:docs.unity3d.com/ScriptReference/Renderer.OnBecameVisible.html(和 OnBecameInvisible) 您可以使用它来维护相机当前可见的对象列表。你对这些物体的计划到底是什么?当我们知道你想用 GameObjects 做什么时,也许会有更好的解决方案
-
感谢您的回复。实际上,我正在尝试为自动驾驶汽车构建一个模拟器。所以我需要所有可以从汽车摄像头看到的物体。我需要他们的距离、位置、旋转、状态数据进行计算。那么有没有比你之前的建议更好的方法呢?
-
光线投射会是更好的方法吗?
-
我也会这么说。没有必要让汽车知道总是知道街道尽头有一栋建筑物,只要它在一定范围内。但我建议您搜索“统一自动驾驶汽车”之类的内容。应该有很多教程会告诉你如何做到这一点。
-
您可能还想查看TestPlanesAABB。使用
OnBecameVisible时,“对象在需要在场景中渲染时被认为是可见的。它可能实际上不会被任何相机看到,但仍需要渲染阴影”。