我在Hierarch中添加了两个多维数据集。 第一个我附上脚本。 我将第二个立方体拖到Inspector的墙上。
在运行游戏时,我的整个电脑卡住了我不得不关闭电脑并重新开始。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MazeGenerator : MonoBehaviour {
public GameObject wallHolder;
public float wallLength = 1.0f;
public int xSize = 5;
public int ySize = 5;
private Vector3 initialPos;
// Use this for initialization
void Start ()
{
CreateWalls();
}
// Update is called once per frame
void Update () {
}
void CreateWalls()
{
wallHolder = new GameObject();
wallHolder.name = "Maze";
initialPos = new Vector3((-xSize / 2) + wallLength / 2, (-ySize / 2) + wallLength / 2);
Vector3 myPos = initialPos;
GameObject tempWall;
//For x axis
for (int i = 0; i < ySize; i++)
{
for (int j = 0; j <= xSize; j++)
{
myPos = new Vector3(initialPos.x + (j * wallLength) - wallLength / 2, 0.0f, initialPos.z + (i * wallLength) - wallLength / 2);
tempWall = Instantiate(wallHolder, myPos, Quaternion.identity) as GameObject;
tempWall.transform.parent = wallHolder.transform;
}
}
//for y axis
for (int i = 0; i <= ySize; i++)
{
for (int j = 0; j < xSize; j++)
{
myPos = new Vector3(initialPos.x + (j * wallLength), 0.0f, initialPos.z + (i * wallLength) - wallLength);
tempWall = Instantiate(wallHolder, myPos, Quaternion.Euler(0.0f, 90.0f, 0.0f)) as GameObject;
tempWall.transform.parent = wallHolder.transform;
}
}
}
}
答案 0 :(得分:1)
您在如何分配和引用wallHolder属性方面有些奇怪。密切关注你如何处理它。像这样分解它是个好主意:
size_t
将MazeGenerator脚本放在名为MazeGenerator的对象上。使用Inspector,将场景中的GameObject指定为wallObjectRoot,并将项目中的Prefab指定为wallObjectReference。您也可以使用场景中的gameObject作为wallObjectReference,但这有点不稳定。
此外,如果通过从Windows任务管理器(Ctrl + Shift + Esc)取消它来冻结它,你应该可以退出统一过程。