2017-07-18 116 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#教程](https://unity3d.com/learn/tutorials/s/scripting)。請參閱**變量和函數**主題。 – Programmer

回答

1

您首先需要爲您的預製件聲明一個變量 - 我將假設它是Gameobject類型。

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

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

然後,您可以拖動預製在Assets文件夾字段中檢查,或使用Resources.Load()找到它通過你的腳本。

+0

@wizviper如果您澄清我們可以嘗試提供幫助,則不清楚您嘗試使用z值實現的效果。你是否試圖一次實例化所有4個預製件? – ryeMoss

相關問題