我正在Unity3d上制作一个2D游戏,我想创造一个无限世界一代,我创建了一个名为“chunk”的游戏对象,我会在其他游戏对象中随机生成另一个代码,它有一个精灵渲染,我把它放在我的纹理,现在,这是我的代码。它与无限世界一代无关,但它在玩家周围放置了一些“块”
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);
}
我的问题是,我怎样才能创造无限世界一代?
答案 0 :(得分:0)
没有任何一种方法可以做到这一点,所以你将要收到的答案,例如这个答案,将比具体的代码更具概念性。总之...
你可以考虑拥有一个块的2D数组,并在最右边的一个末端创建一个新的块对象,同时当玩家从左边输入一个新块时摧毁最左边的那个。同样,从右侧输入新块时可以说相反,但是这种方法不会为您提供太多的块管理。
答案 1 :(得分:0)
尝试研究Perlin Noise。 您应该能够根据任何位置的坐标始终生成相同的值,从而为您提供“无限”的世界。