Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 二维无限世界生成_C#_Unity3d - Fatal编程技术网

C# 二维无限世界生成

C# 二维无限世界生成,c#,unity3d,C#,Unity3d,我正在Unity3d上制作一个2d游戏,我想生成一个无限世界,我已经创建了一个名为chunk的游戏对象,我将在其中放置另一个用于随机生成其他游戏对象的代码。在我放置纹理的地方有一个精灵渲染,现在,这就是我的代码。它与无限世界生成无关,但它会在玩家周围放置一些块 void Start () { rot = Quaternion.identity; x1 = (transform.position.x + 410); y1 = (transform.position.y

我正在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);
}

我的问题是,我怎样才能创造一个无限的世界世代

没有任何一种方法可以做到这一点,因此您将收到的答案(比如这一个)将比特定的代码片段更具概念性。无论如何


你可以考虑使用块的2D数组,并在最右边的一个端创建一个新的块对象,同时在玩家从左边输入一个新的块时,在最左边的一个上创建一个新的块对象。同样,从右边输入一个新的块时也可以说是相反的,但是这种方法不会为您提供太多的块管理。

试试看柏林噪声。
你应该能够基于任何位置的坐标一致地生成相同的值,从而给你一个无限的世界。

如果有人知道我如何创建一个无限的世界生成,我将把它放在主要问题中,这很难解释,希望有人理解我的意思XD,我知道这样做并不简单。你看过这里的PCG维基了吗?这里有几篇关于世界一代的文章可能会给你一些想法。