为什么我的射弹游戏对象不移动?



我已经尝试了许多其他解决方案,但都不适用。
即使我使用AddForce,我的投射物仍然存在。

这是代码

public Transform gunExitPoint;
public int ProjectileVelocity;
public GameObject projectilePref;
void Update()
{
if (Input.GetKeyDown(KeyCode.Mouse0))
{
GameObject shot = Instantiate(projectilePref, gunExitPoint.position, gunExitPoint.rotation);
Rigidbody2D rb = shot.GetComponent<Rigidbody2D>();
rb.AddForce(transform.forward * ProjectileVelocity * Time.deltaTime, ForceMode2D.Impulse);
}
}

根据这里的内容,假设它是一个完整的示例,则int变量ProjectileVelocity未赋值。未指定的integer类型默认为0。乘以0得到0值。如果你用它作为你的力量,那么你的炮弹就不会去任何地方。

在更改代码并使用调试(感谢gmiley(后,我能够向我的投射物添加力,然后我将rigidbody2d更改为动态,并将速度提高到1000f。这是代码(不幸的是有点草率(

public Vector2 thrust;
public Transform gunExitPoint;
public int ProjectileVelocity = 1000;
public GameObject projectilePref;
// Start is called before the first frame update
void Start()
{

}

void Update()
{
if (Input.GetKeyDown(KeyCode.Mouse0))
{
GameObject shot = Instantiate(projectilePref, gunExitPoint.position, gunExitPoint.rotation);
Rigidbody2D rb = shot.GetComponent<Rigidbody2D>();
thrust = transform.up * ProjectileVelocity ;
rb.AddForce(thrust, ForceMode2D.Impulse);
}
}

相关内容

  • 没有找到相关文章

最新更新