在更新功能期间尝试 setParent 会出错

Trying to setParent during update function gives error

我正在尝试在 Unity 中以设定的时间间隔生成一颗星星。 但我想 parent 这些星星不要让我的检查员感到混乱。

但是当我尝试这样做时,它给出了 "NullReferenceExeption: Object reference not set to an instance of an object."

我以前在其他地方成功使用过这种类型的代码,但不在更新功能中。

我使用的代码如下。 感谢您的时间和提前帮助。

更新:

我用过

Debug.Log (obj);
Debug.Log (starParent);

检查游戏对象是否存在。 它找到了 starParent 但没有找到 obj。

所以你的问题是它 returns 对于刚刚实例化的 GameObject 为空。这跟Update函数有关系吗?

public class StarSpawner : MonoBehaviour {

    public Star star;
    private float spawnRate = 3f;
    public static float time = 0;
    private GameObject starParent;

    void Start() {
        if (!GameObject.Find ("StarParent")) {
            new GameObject ("StarParent");
        }

        starParent = GameObject.Find ("StarParent");
        SetNextStarTime();
    }

    void Update () {
        if (Time.timeSinceLevelLoad > time) {
        Vector3 spawnPosition = new Vector3 (Random.Range (1f, 9f), 7);
        GameObject obj = Instantiate (star, spawnPosition, Quaternion.identity) as GameObject;
        obj.transform.SetParent (starParent.transform);
        SetNextStar ();
        }
    }

    void SetNextStarTime(){
        time = Time.timeSinceLevelLoad + spawnRate + Random.Range(0f, 5f);
    }

}
public Star star;

应该是

public GameObject star;