Unity3D:如何实例化一个新的游戏对象并对其进行操作

Unity3D: How to instantiate a new GameObject and manipulate it

我正在开发 2D Unity 游戏,我想在 运行 时间内创建一个 Boom 并移动它。

这是我的部分代码。 我创建了一个 prefab Boom,然后将其放入检查器中。

public GameObject Boom; // prefab Boom is drop here
void OnMouseDown()
{   
    ...
    Vector3 NewBoomPostion = new Vector3 (Luncher.transform.position.x,BoomPosition, 85);
    Instantiate(Boom, NewBoomPostion , Quaternion.identity);
    iTween.MoveTo (Boom, iTween.Hash ("y",BoomendPosition ,"speed",Boomspeed,"EaseType",BoomeaseType,"LoopType",BoomloopType));
}

但是它抛出这个错误

NullReferenceException: Object reference not set to an instance of an object iTween.RetrieveArgs ()

我认为问题是,Instantiate() 实例化了对象 (Boom) 的副本。实例化后,您的新游戏对象不会指向 Boom 对象。这是一个新的游戏对象。

GameObject instantiatedBoom = (GameObject) Instantiate (Boom, newBoomPosition, Quaternion.identity);
iTween.MoveTo( instantiatedBoom,....);

应该可以解决