2017-07-18 13 views
-1

私は、プレイヤーが指定されたコライダーに触れるときに作成したい4つのプレハブ「チャンク」を使って、クロスビーロードゲームを作っています。私のコードは、プレーヤーがヒットしたときにロードされるチャンクをランダム化し、次のチャンクを生成します。しかし何らかの理由で、私のプレハブを認識せず、最後のチャンクより先にチャンク25のZ値をロードしたい。コード:プレハブをインスタンス化しますか?

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 



public class ChunkLoader : MonoBehaviour { 
int level = 0; 
public Transform chickenpos; 
// Use this for initialization 
void Start() { 

} 

// Update is called once per frame 
void Update() { 

} 
void spawnChunk() 
{ 
    float chunkload = Random.Range(0, 2); 
    Debug.Log(chunkload); 
    if (level <= 10) 
    { 
     if(chunkload <= 1) 
     { 

     Instantiate (ChunkA1, chickenpos); 

     } 
    } 

} 
void OnTriggerEnter(Collider other) 
{ 
    if (other.tag == "Loader") 
    { 
     level = level++; 
     Debug.Log(level); 
     spawnChunk(); 
    } 
} 
} 
+0

これはあなたの問題をうまく説明していませんが、宣言されていない変数( 'ChunkA1')を参照しているようです。 – Programmer

+0

その場合は、[C#tutorial](https://unity3d.com/learn/tutorials/s/scripting)を参照します。 **変数と関数**のトピックを参照してください。 – Programmer

答えて

1

まず、プレハブの変数を宣言する必要があります。ここでは、これはゲームオブジェクトのタイプであると仮定します。

int level = 0; 
public Transform chickenpos; 
public Gameobject ChunkA1; //declare variable for the prefab 

// Use this for initialization 
void Start() {} 

その後、インスペクタのフィールドに自分の資産フォルダにプレハブをドラッグするか、Resources.Load()を使用してスクリプトを通してそれを見つけることができます。

+0

@wizviper私たちが手伝ってくれることを明確にすれば、あなたがZ値で達成しようとしている効果ははっきりしません。一度に4つのプレハブをすべてインスタンス化しようとしていますか? – ryeMoss

関連する問題