Unity将GameObject分配给在运行时实例化的预制件

时间:2017-05-04 18:50:01

标签: c# unity3d unity5

我有一个名为" trigger.cs"的脚本。此脚本附加到预制件中的对象。预制件在运行时实例化。

现在这就是我想要的:enter image description here

这是我想在不拖放的情况下分配的游戏对象。enter image description here

此外,如果我能以某种方式硬编码"死亡菜单"这也是一个解决方案。

这是我的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 !");
    }
}

1 个答案:

答案 0 :(得分:1)

它无法正常工作,因为您需要在功能中初始化deathMenu变量。您无法在函数外使用GameObject.Find("Death Menu");。在房产中使用它也很好。只要在使用deathMenu变量之前调用函数,任何函数都可以正常运行。 AwakeStart函数用于此类内容。

此外,GameObject.Find("Death Menu");返回GameObject而不是脚本或组件。 Death deathMenu应为GameObject deathMenu

这应该这样做:

public GameObject deathMenu;

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

现在,如果您的"死亡菜单" GameObject附加了Death脚本并且您想要访问它,则需要使用{{1找到"死亡菜单" GameObject后获取脚本。

GetComponent