在Unity中实现无尽滚动世界的最佳方法是什么?我目前有一张地图,该地图分为4个不同的预制件,随着玩家移动并到达其中一个预制件的边缘,接下来应该出现的那部分地图将会存在。另外,当玩家离地图片段足够远时,该片段会突然消失,以节省计算资源。
我还考虑过像玩家在移动一样使它看起来像,但实际上是在玩家周围移动世界。因此,播放器将停留在0x和0y位置,但地图只是在播放动画时移动。
我觉得有更好的方法可以做到这一点。如果有人可以允许我介绍一些游戏开发人员的机密,我将不胜感激。
答案 0 :(得分:0)
为此我使用了重复的坐标
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];
}