2017-05-04 14 views
0

"trigger.cs"というスクリプトがあります。このスクリプトは、プレハブ内のオブジェクトに添付されています。プレハブは実行時にインスタンス化されます。 enter image description hereUnityは実行時にインスタンス化されるプレハブにゲームオブジェクトを割り当てます

そして、これは私がドラッグアンドドロップすることなく、割り当てたいゲームオブジェクトです:

は今、これは私が欲しいものです。 enter image description here

また、私は何とか解決策でもある「デスメニュー」をハードコードすることができます。

は、ここに私のtrigger.csは、あなたが機能deathMenu変数を初期化する必要があるので、それが働いていない

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 

public class trigger : MonoBehaviour { 

public Text scoreText; 
public Death deathMenu; 

//the line below is commented because its not working for me and just throws an error. 
//public Death deathMenu = GameObject.Find("Death Menu"); 


void Start(){ 
} 

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


void OnTriggerEnter (Collider othercollider){ 
    Debug.Log ("You Are Dead !"); 
    } 
} 

答えて

1

ファイルです。関数の外でGameObject.Find("Death Menu");を使用することはできません。プロパティでそれを使用することも良いです。 deathMenu変数が使用される前に関数が呼び出される限り、どの関数も問題ありません。このような用途には、AwakeまたはStart関数が使用されます。

また、GameObject.Find("Death Menu");はスクリプトまたはコンポーネントではなくGameObjectを返します。あなたは、

public GameObject deathMenu; 

void Start() 
{ 
    deathMenu = GameObject.Find("Death Menu"); 
} 

、あなたが実際にあなたの「死メニュー」ゲームオブジェクトに添付Deathスクリプトを持っていて、それをアクセスする場合:Death deathMenuこれはそれを行う必要がありますGameObject deathMenu

する必要があります「死のメニュー」 GameObjectを見つけた後にGetComponentを使用してスクリプトを取得する必要があります。

public Death deathMenu; 

void Start() 
{ 
    deathMenu = GameObject.Find("Death Menu").GetComponent<Death>(); 
} 
+0

[OK]をこれらの両方を試みた....私は何かエラーを示しています...しかし、私は "NullReferenceException:オブジェクト参照は、オブジェクト " – Simon

+0

今のところ最初のものに注目しましょう。 'deathMenu = GameObject.Find(" Death Menu ");'は 'NullReferenceException'を引き起こしていますか? 'Start'関数に入れましたか?はいの場合は、 'awake'関数に入れることができますか? – Programmer

+0

最初のものは正常に動作しています...何もエラーはありません....しかし何らかの理由でそれでもまだ空いています....そして空で私はそのようなものを意味します:https://i.stack.imgur.com/99cfl .png – Simon

関連する問題