我有一些错误!
Unity 3D
Rigidbody bullet = (Rigidbody)Instantiate(projectile, transform.position + transform.forward, transform.rotation);
bullet.AddForce(transform.forward * bulletImpulse, ForceMode.Impulse);
但我在此代码中出现错误
无法转换类型
UnityEngine.GameObject' to
UnityEngine.Rigidbody'
谢谢你的帮助 请帮助!
答案 0 :(得分:1)
Instantiate
方法返回GameObject
,而不是Rigidbody
。 Rigidbody
是该游戏对象的组件,因此要获得它,您必须致电GetComponent
:
GameObject gameObject = (GameObject)Instantiate(projectile, transform.position + transform.forward, transform.rotation);
Rigidbody bullet = gameObject.GetComponent<Rigidbody>();
答案 1 :(得分:0)
您需要使用组件:
https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html
最终代码:
Rigidbody bullet = ((GameObject)Instantiate(projectile, transform.position + transform.forward, transform.rotation)).GetComponent<Rigidbody>();
bullet.AddForce(transform.forward * bulletImpulse, ForceMode.Impulse);