C# 二维无限世界生成
我正在Unity3d上制作一个2d游戏,我想生成一个无限世界,我已经创建了一个名为chunk的游戏对象,我将在其中放置另一个用于随机生成其他游戏对象的代码。在我放置纹理的地方有一个精灵渲染,现在,这就是我的代码。它与无限世界生成无关,但它会在玩家周围放置一些块C# 二维无限世界生成,c#,unity3d,C#,Unity3d,我正在Unity3d上制作一个2d游戏,我想生成一个无限世界,我已经创建了一个名为chunk的游戏对象,我将在其中放置另一个用于随机生成其他游戏对象的代码。在我放置纹理的地方有一个精灵渲染,现在,这就是我的代码。它与无限世界生成无关,但它会在玩家周围放置一些块 void Start () { rot = Quaternion.identity; x1 = (transform.position.x + 410); y1 = (transform.position.y
void Start () {
rot = Quaternion.identity;
x1 = (transform.position.x + 410);
y1 = (transform.position.y + 410);
x2 = (transform.position.x - 410);
y2 = (transform.position.y - 410);
x3 = (transform.position.x + 410);
y3 = (transform.position.y);
x4 = (transform.position.x);
y4 = (transform.position.y + 410);
x5 = (transform.position.x - 410);
y5 = (transform.position.y);
x6 = (transform.position.x);
y6 = (transform.position.y - 410);
x7 = (transform.position.x + 410);
y7 = (transform.position.y - 410);
x8 = (transform.position.x - 410);
y8 = (transform.position.y + 410);
Instantiate (chunk, transform.position, transform.rotation);
Instantiate (chunk, new Vector3 (x1,y1,0), rot);
Instantiate (chunk, new Vector3 (x2,y2,0), rot);
Instantiate (chunk, new Vector3 (x3,y3,0), rot);
Instantiate (chunk, new Vector3 (x4,y4,0), rot);
Instantiate (chunk, new Vector3 (x5,y5,0), rot);
Instantiate (chunk, new Vector3 (x6,y6,0), rot);
Instantiate (chunk, new Vector3 (x7,y7,0), rot);
Instantiate (chunk, new Vector3 (x8,y8,0), rot);
}
我的问题是,我怎样才能创造一个无限的世界世代 没有任何一种方法可以做到这一点,因此您将收到的答案(比如这一个)将比特定的代码片段更具概念性。无论如何
你可以考虑使用块的2D数组,并在最右边的一个端创建一个新的块对象,同时在玩家从左边输入一个新的块时,在最左边的一个上创建一个新的块对象。同样,从右边输入一个新的块时也可以说是相反的,但是这种方法不会为您提供太多的块管理。
试试看柏林噪声。你应该能够基于任何位置的坐标一致地生成相同的值,从而给你一个无限的世界。如果有人知道我如何创建一个无限的世界生成,我将把它放在主要问题中,这很难解释,希望有人理解我的意思XD,我知道这样做并不简单。你看过这里的PCG维基了吗?这里有几篇关于世界一代的文章可能会给你一些想法。