Unity 2D重复世界
Unity 2D repeating overworld
在 Unity 中实现无限滚动的主世界的最佳方式是什么?我目前有一张地图被切割成 4 个不同的预制件,当玩家移动并到达其中一个预制件的边缘时,下一个应该出现的地图部分将会出现。此外,当玩家离地图块足够远时,该块会突然消失以节省计算资源。
我还想过让它看起来就像玩家在移动一样,但实际上是在玩家周围移动世界。所以玩家将停留在 0x 和 0y,但它是移动的地图,而玩家只是在做他的动画。
我觉得有更好的方法来做这件事。如果有人能让我了解一些游戏开发秘密,我将不胜感激。
我为此使用了坐标重复
public MapChunk GetChunk (int x, int y)
{
x = (int)Mathf.Repeat(x, WorldSizeX);
y = (int)Mathf.Repeat(y, WorldSizeY);
//Then using map chunk map[x, y]
if (map[x, y] == null)
{
//For example, you can create chunks lazy (only when calls)
GameObject block = Instantiate(ChunkPrefab);
}
return map[x, y];
}
在 Unity 中实现无限滚动的主世界的最佳方式是什么?我目前有一张地图被切割成 4 个不同的预制件,当玩家移动并到达其中一个预制件的边缘时,下一个应该出现的地图部分将会出现。此外,当玩家离地图块足够远时,该块会突然消失以节省计算资源。
我还想过让它看起来就像玩家在移动一样,但实际上是在玩家周围移动世界。所以玩家将停留在 0x 和 0y,但它是移动的地图,而玩家只是在做他的动画。
我觉得有更好的方法来做这件事。如果有人能让我了解一些游戏开发秘密,我将不胜感激。
我为此使用了坐标重复
public MapChunk GetChunk (int x, int y)
{
x = (int)Mathf.Repeat(x, WorldSizeX);
y = (int)Mathf.Repeat(y, WorldSizeY);
//Then using map chunk map[x, y]
if (map[x, y] == null)
{
//For example, you can create chunks lazy (only when calls)
GameObject block = Instantiate(ChunkPrefab);
}
return map[x, y];
}