Unity 2D重复世界

问题描述 投票:1回答:1

在Unity中实现无休止的滚动世界的最佳方法是什么?我目前有一张地图切成4个不同的预制件,当玩家移动并到达其中一个预制件的边缘时,应该是下一个地图的部分将会存在。此外,当玩家远离地图片段时,该片段将突然消失以节省计算资源。

我也想过让玩家看起来像是在移动,但实际上是在玩家周围移动世界。因此,玩家将保持在0x和0y,但这是在玩家完成动画时移动的地图。

我觉得有更好的方法可以做到这一点。如果有人能让我参与一些游戏开发秘密,我将不胜感激。

unity3d 2d
1个回答
0
投票

我为此重复使用了coords

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];
}
© www.soinside.com 2019 - 2024. All rights reserved.