我正在开发一个由其他人早些时候开发的游戏。我面临一个问题,当玩家(带摄像头)开始在路上奔跑时,建筑物并没有以正常的形状出现,而当我们向前移动(更靠近建筑物)时,它们会恢复原来的形状,有时相机看不到道路两侧的建筑物(空旷的空间),当我们靠近建筑物时,它会突然作为可见物体出现。我认为这可能是一些 unity3d 设置问题(渲染、相机或质量)。可能是因为提高了移动设备的性能。
任何人都可以知道可能是什么问题或如何解决它。
任何帮助将不胜感激。提前致谢
这听起来像是每个建筑物的 3D 模型的可用 LOD 的问题。
基本上,3D 游戏的工作原理是每个 3D 模型有 2-3 个不同版本,具有不同的 * L *evels * O *f * D *etail。例如,如果您有一个使用 500 个多边形的房屋模型,您可能会有另外 2 个版本(例如 250 个多边形和 100 个多边形),它们的使用取决于玩家和对象之间的距离。他离得越远,使用的版本就越简单。
当开发人员使用自动生成的 LOD 模型时会出现此问题,该模型看起来会变形或根本不会出现。Unity 可能会自动生成它们,但我不确定你会在哪里找到统一的设置。但是,我在 unity 商店中看到 3d 模型提供具有不同 LOD 的模型,因此 unity 可能让您可以选择设置自己的模型。最简单的解决方案是增加 LOD 变化的距离,而复杂的解决方案是修复 3D 模型的自定义版本,以获得更大的距离,并减少多边形数量。
我已经解决了这个问题。这是由于Unity3d 中用于对象(建筑物)的LOD(细节级别)以提高较慢设备的性能。LOD 提供了许多级别的细节(对象),您可以根据需要进行调整。在我的具体问题中,由于 LOD1 的不同(错误)位置,建筑物突然出现,即对于 LOD1,建筑物在错误的位置,但对于 LOD0,它在正确的位置。因此,当我的相机从远处看到它时,它会看到 LOD1 位于错误的位置,因此它会在预期位置看到没有建筑物的空白空间。但是当相机靠近时,它会看到 LOD0 建筑物位于正确的位置,并且建筑物似乎突然出现或变得可见。