在更新函数期间尝试setParent会出错

时间:2016-05-29 18:34:21

标签: c# unity3d instantiation setparent

我试图在Unity中以设定的时间间隔生成一颗星。 但是,我想让这些明星成为父母,不要让我的检查员混乱。

但是当我尝试这样做时,它会给出 " NullReferenceExeption:对象引用未设置为对象的实例。"

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

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

更新:

我用过

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

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

所以问题是它为刚刚实例化的GameObject返回Null。这是否与更新功能有关?

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);
    }

}

1 个答案:

答案 0 :(得分:4)

from sqlalchemy import create_engine, MetaData, Table
from sqlalchemy import Integer, String,Date
from sqlalchemy.orm import  sessionmaker

engine = sqlalchemy.create_engine(url).connect()
Session = sqlalchemy.orm.sessionmaker(bind=engine)
session = Session()
metadata = sqlalchemy.MetaData(engine)

moz_bookmarks = Table('reports.bigjoin', metadata, 
                      Column('id', String, primary_key=True),
                      Column('id2', String),
                      Column('ts_min', Integer),
                      Column('ts_local', Integer),
                      Column('10m_cell', Integer),
                      Column('ds', Date),
                      Column('ds_log', Date),
                      Column('ds_local', Date)
                      )


 x = session.query(moz_bookmarks).filter(
    (moz_bookmarks.ds >= '2016-01-01', moz_bookmarks.ds <= '2016-01-04')).count()

应该是

public Star star;