我有一个名为" trigger.cs"的脚本。此脚本附加到预制件中的对象。预制件在运行时实例化。
此外,如果我能以某种方式硬编码"死亡菜单"这也是一个解决方案。
这是我的trigger.cs文件
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 !");
}
}
答案 0 :(得分:1)
它无法正常工作,因为您需要在功能中初始化deathMenu
变量。您无法在函数外使用GameObject.Find("Death Menu");
。在房产中使用它也很好。只要在使用deathMenu
变量之前调用函数,任何函数都可以正常运行。 Awake
或Start
函数用于此类内容。
此外,GameObject.Find("Death Menu");
返回GameObject而不是脚本或组件。 Death deathMenu
应为GameObject deathMenu
这应该这样做:
public GameObject deathMenu;
void Start()
{
deathMenu = GameObject.Find("Death Menu");
}
现在,如果您的"死亡菜单" GameObject附加了Death
脚本并且您想要访问它,则需要使用{{1找到"死亡菜单" GameObject后获取脚本。
GetComponent