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,....);
应该可以解决
我正在开发 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,....);
应该可以解决