私はUnityを使い始めました。プレファブ(いくつかの2Dスプライト)をあらかじめ定義された位置に配置する単純なC#スクリプトをまとめようとしています。問題は、プレハブにスクリプトを適用してシーンをプレイしようとする度に、Unityはフリーズし、すべてのメモリを使い果たしてしまう(時には私に黒い画面を表示する)無限ループを生成し、私は強制終了させなければならないということですタスクマネージャのプロセスUnity C#スクリプト - ループのない無限ループ...何を待つ?
コードは、しかし、非常に簡単で、まったくのループが含まれていません:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DungeonTest : MonoBehaviour {
public Transform DungeonBuilder;
// Use this for initialization
void Start()
{
Instantiate (DungeonBuilder, new Vector2 (1, 1), DungeonBuilder.rotation);
Instantiate (DungeonBuilder, new Vector2 (2, 2), DungeonBuilder.rotation);
Instantiate (DungeonBuilder, new Vector2 (3, 3), DungeonBuilder.rotation);
}
void Update()
{
}
}
start()メソッドは、複数のインスタンスを作成し、メモリ使用量も行くことを、階層窓から見ることができます最大85%(!):
おそらくここで間違ってしまっている可能性がどのようにアドバイスしてください。私はすでにいくつかのチュートリアルのビデオを見て、私はドキュメンテーションから関連するパッセージを読んだが、私はこれを理解することはできない。
ありがとうございます!
ダンジョンビルダータイルにはスクリプトがありますか?シーンのタイルは、インスタンス化されたタイル上のものも新しいタイルを作成していることを示す3の累乗で増加しています。おそらく、誤ってDungeonTestスクリプトをタイルプレハブに置いたのでしょうか? – Reasurria
いいえ、このスクリプトのみがプレハブに添付されています。シーンの階層には、このスクリプトがコンポーネントとして追加されたメインカメラとdungeonTileプレハブのみが含まれます。私はドキュメンテーションの "インスタンシングプレハブ"セクションの指示に従いました。 – Bandi
あなたの 'DungeonBuilder' GameObjectのコンポーネントはこのスクリプトのように、このスクリプトはプレハブ上にありますか?これは、インスタンス化された各オブジェクトが独自の 'Start()'を呼び出すことを意味します。インスタンス化されたオブジェクトは、シーンのスクリーンショットと一直線に並んでいるように見えます。 – Serlite