階層に2つのキューブを追加しました。 最初のスクリプトを添付しました。 2番目の立方体を壁のホルダーのインスペクタにドラッグしました。私は迷路を作成しようとしていますが、ゲームを実行しているときにCPU使用量やメモリ使用量が過負荷になっています。どうすれば修正できますか?
ゲームを実行しているときに私のPC全体がスタックしていました。パソコンをシャットダウンして再起動しなければなりませんでした。
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;
}
}
}
}
私はまだ実際のコードを見ていませんが、一目で2倍のネストされたループは2dの迷路で奇妙に見えます。それはY軸で「移動する」ループではなく、 X軸で動くか? –
あなたは何が起こっているかを見るのに十分なコードを提供していません。あなたは私たちに[mcve]を与える必要があります。 – Enigmativity