在使用最少资源的同时表示大范围对象的最佳方法是什么

本文关键字:范围 对象 最佳 是什么 方法 表示 资源 | 更新日期: 2023-09-27 18:34:15

所有 我希望在 Unity 中开发一个项目,它是针对 android 的!我想知道我是否可以澄清一些事情。我的问题涉及我试图创造一个恒星宇宙,确切地说是150,000颗单独的恒星,假设在任何时候都只有一定比例的视野。能够说服用户相信真实环境,同时将开销降至最低的最有效结构是什么,因为它将在手机上?

我想用什么类型的物体来表示恒星的质量与需要更精细细节的近距离恒星?

在规划此项目时,我应该考虑哪种线程结构?

在这种情况下,项目从 Unity 移植到 android 的难易程度如何?

非常感谢任何帮助,因为我希望通过团结更好地发展,干杯

在使用最少资源的同时表示大范围对象的最佳方法是什么

我建议不要跟踪所有150,000颗恒星,而只跟踪那些在视野中的恒星。 当视野发生变化时,使用随机数生成器定义刚刚进入它的星星,并从内存中删除剩下的星星。 为了保持一致性,如果用户可以在方向上进行快速切换,您可能希望在当前视野周围保留星星一小段时间。

至于线程,这与其说是你正在跟踪的星星数量的函数,不如说是你用它们做什么的函数——你没有提到的东西。

1(这个问题主要是一个游戏开发问题,而不是统一性问题。我只是给你指出方向,因为一个完整的答案将是很多。通常,如果您需要知道您在具有无限对象或接近(150k 表示接近(的 3D 场景中的位置,您将使用八叉树进行定向。像地图一样构造,树的每个节点都指向一个方向(西,南,北,东,西北,...然后你的每颗星星都有1个节点,你可以计算出你想看到什么在哪里和多少。更多信息可以在谷歌上找到。(相当复杂的话题jfyi(

2(专用于1(具有实体/组件设计的混合。你会知道我的意思之后 1( 你很清楚。

3( 绝对多线程异步。1 个线程更新,1 个线程绘制,几个工作线程(位置,...

4(Unity引擎的端口实际上工作得很好。当然,您应该有一个Android外围设备来测试和调试,但大多数时候,它会为您工作。