Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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# 是否有一种方法可以将游戏对象放置在网格模式中(类似于tilemap)?_C#_Unity3d - Fatal编程技术网

C# 是否有一种方法可以将游戏对象放置在网格模式中(类似于tilemap)?

C# 是否有一种方法可以将游戏对象放置在网格模式中(类似于tilemap)?,c#,unity3d,C#,Unity3d,我对unity还不太熟悉,所以如果我说得很奇怪,我很抱歉 我试图创建一个大区域,每个“瓷砖”都有机会生成一个随机对象。我让它为一个空的游戏对象工作,但是制作一个大网格需要反复复制/粘贴同一个对象并设置其位置。它位于: 在一个特定的模式中放置一组对象,可以说您想要 以栅格或圆形图案放置一组对象。传统上 这将通过以下方式实现: 完全从代码构建对象。这太无聊了!套房 脚本中的值既慢又不直观,不值得使用 麻烦。制作完全装配的对象,复制并放置它 在场景中多次出现。这是乏味的,而且放置对象 在网格中精确定位

我对unity还不太熟悉,所以如果我说得很奇怪,我很抱歉

我试图创建一个大区域,每个“瓷砖”都有机会生成一个随机对象。我让它为一个空的游戏对象工作,但是制作一个大网格需要反复复制/粘贴同一个对象并设置其位置。

它位于:

在一个特定的模式中放置一组对象,可以说您想要 以栅格或圆形图案放置一组对象。传统上 这将通过以下方式实现:

完全从代码构建对象。这太无聊了!套房 脚本中的值既慢又不直观,不值得使用 麻烦。制作完全装配的对象,复制并放置它 在场景中多次出现。这是乏味的,而且放置对象 在网格中精确定位是很困难的。因此,将Instantiate()与预置一起使用 相反我们认为你已经明白为什么预制件在建筑中如此有用了 这些场景。以下是这些场景所需的代码:

//在圆中实例化一个预置
公共游戏对象预制;
公共int numberOfObjects=20;
公共浮子半径=5f;
void Start()
{
for(int i=0;i
六边形网格图案怎么样?。此示例不遵循网格模式,仅放置具有特定行和列的元素查看此内容或在新问题中提问请->谢谢链接,但我无法将预制瓷砖添加到瓷砖贴图中。我试图创建一个预制笔刷,但Unity 2019.4版本没有这个选项。
// Instantiates a prefab in a circle

public GameObject prefab;
public int numberOfObjects = 20;
public float radius = 5f;

void Start() 
{
    for (int i = 0; i < numberOfObjects; i++)
    {
        float angle = i * Mathf.PI * 2 / numberOfObjects;
        Vector3 pos = new Vector3(Mathf.Cos(angle), 0, Mathf.Sin(angle)) * radius;
        Instantiate(prefab, pos, Quaternion.identity);
    }
}



// Instantiates a prefab in a grid

public GameObject prefab;
public float gridX = 5f;
public float gridY = 5f;
public float spacing = 2f;

void Start()
{
    for (int y = 0; y < gridY; y++) 
    {
        for (int x = 0; x < gridX; x++)
        {
            Vector3 pos = new Vector3(x, 0, y) * spacing;
            Instantiate(prefab, pos, Quaternion.identity);
        }
    }
}