Unity3d 统一大,动态瓦片地图

Unity3d 统一大,动态瓦片地图,unity3d,unity5,Unity3d,Unity5,我正在考虑制作城市交通模拟游戏,基于类似simcity的平铺地图。因为交通是主要的组成部分,我不会像画所有的建筑物或其他东西那样,详细地描述这个城市。但我需要将城市划分为区和村 我希望它们是随机生成的,基于平铺地图系统-实际上这不必是基于平铺的,但我没有更好的主意来生成随机划分的区域 问题是实际上有很多瓷砖。当然,我不会把所有的磁贴都制作成游戏对象,但是存储磁贴信息的数组只有4000x3000(对于12000000个磁贴)。可以吗?我认为这会严重减慢比赛速度 我搜索了许多生成平铺贴图的方法,但是

我正在考虑制作城市交通模拟游戏,基于类似simcity的平铺地图。因为交通是主要的组成部分,我不会像画所有的建筑物或其他东西那样,详细地描述这个城市。但我需要将城市划分为区和村

我希望它们是随机生成的,基于平铺地图系统-实际上这不必是基于平铺的,但我没有更好的主意来生成随机划分的区域

问题是实际上有很多瓷砖。当然,我不会把所有的磁贴都制作成游戏对象,但是存储磁贴信息的数组只有4000x3000(对于12000000个磁贴)。可以吗?我认为这会严重减慢比赛速度

我搜索了许多生成平铺贴图的方法,但是这些平铺贴图是用于RPG的。。它们只是精灵和背景

我的瓷砖应该动态变化(可能是颜色,我正在用3d制作游戏,所以瓷砖的高度可能会变化),并显示瓷砖的状态(城市的一个小区域)。有什么更好的方式满足我的需求


谢谢大家!

简而言之,您应该生成一个网格来表示您的瓷砖。这将允许您将大量的磁贴表示为单个游戏对象

这并不像听起来那么麻烦。事实上,我最近自己也经历了这一过程,并编写了一份关于如何操作的分步指南,以及如何解决我在使用瓷砖时遇到的许多其他问题:

我要提到的唯一警告(教程中讨论了这一点,但没有直接提到)是您仍然应该以某种方式划分地图


我不建议在单个网格中超过100x100个瓷砖,事实上,我建议将其进一步分解。但是,一旦您掌握了瓷砖->网格渲染的基本知识并开始运行,就不难做到这一点。

简单的回答是,您应该生成一个网格来表示瓷砖。这将允许您将大量的磁贴表示为单个游戏对象

这并不像听起来那么麻烦。事实上,我最近自己也经历了这一过程,并编写了一份关于如何操作的分步指南,以及如何解决我在使用瓷砖时遇到的许多其他问题:

我要提到的唯一警告(教程中讨论了这一点,但没有直接提到)是您仍然应该以某种方式划分地图


我不建议在单个网格中超过100x100个瓷砖,事实上,我建议将其进一步分解。但是,一旦你掌握了瓷砖->网格渲染的基本知识并开始运行,就不难做到这一点。

想想一个4000x3000像素的图像文件,也许可以找到它们是如何处理这些数据量的?嗨,用户,你不能在这里问这个问题。这是代码问题。访问gamedev.com,你会在几个小时内得到一个很好的答案。这完全无关。Unity3D(显然)拥有与基于瓷砖的游戏相关的完整系统和资产;这是一个游戏引擎。想想一个4000x3000像素的图像文件,也许可以找到他们是如何处理这些数据量的?嗨,用户,这里你不能问这个问题。这是代码问题。访问gamedev.com,你会在几个小时内得到一个很好的答案。这完全无关。Unity3D(显然)拥有与基于瓷砖的游戏相关的完整系统和资产;这是一个游戏引擎。你们这些家伙真的需要学习和使用遮挡剔除,这是使用3D引擎的主要和核心部分。(当然,遮挡剔除完全内置于Unity中;它们具有一流的、业界领先的遮挡剔除功能)。遮挡剔除是将瓷砖渲染为网格的有力论据。Unity(及其下面的图形引擎)将剔除不可见的对象,甚至顶点,但它们只是图片的一部分。在树中仍然有维护Unity游戏对象的开销。即使禁用树中的游戏对象,仍然会有开销。这很容易看到。在Unity场景中放置10000个精灵(作为单独的游戏对象)并查看性能。它直线下降。即使只有几百块可见。遮挡剔除也是我建议不要创建100x100瓷砖网格的原因,而是将其分解为更合理的部分,代表屏幕上可以容纳多少瓷砖。正如遮挡剔除算法一样先进,如果可以通过简单的位置检查排除整个对象,那么它总是更快、更有效。对,这是一个司空见惯的现象:假设你建造了一个大型赛车场。这是SOP,你必须把它分解成块,所以你的遮挡剔除工作。所涉及的工程人员正在动态计算块的大小,即运行。(“通过简单的位置检查排除”-你不必这样做;OC比我们好。它以数学上最佳的方式作为第一次通过。)是的,肯定。对不起,我应该说得更清楚些。我不是建议对禁用进行手动位置检查。只是通过将其分解为更易于管理的块,内置OC将更容易实现。你们这些家伙真的需要学习和使用遮挡剔除,这是使用3D引擎的主要和核心部分。(当然,遮挡剔除完全内置于Unity中;它们具有一流的、业界领先的遮挡剔除功能)。遮挡剔除是将瓷砖渲染为网格的有力论据。Unity(及其下面的图形引擎)将剔除不可见的对象,甚至顶点,但它们只是图片的一部分。在树中仍然有维护Unity游戏对象的开销。即使禁用树中的游戏对象,仍然会有开销。这很容易看到。在Unity场景中放置10000个精灵(作为单独的游戏对象)并查看性能。它直线下降。即使只有几百个可见。遮挡剔除也是我建议