我正在进行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:未将对象引用设置为对象的实例 iTween.RetrieveArgs()
答案 0 :(得分:1)
我认为问题是,Instantiate()实例化对象(Boom)的副本。实例化后,您的新游戏对象不会指向Boom对象。这是一个新的游戏对象。
GameObject instantiatedBoom = (GameObject) Instantiate (Boom, newBoomPosition, Quaternion.identity);
iTween.MoveTo( instantiatedBoom,....);
应该解决它