Unity3d 5.3.3 Rigidbody2d速度

时间:2016-05-04 15:53:05

标签: c# unity3d unity5 unity3d-2dtools

我正在学习Unity 3D并且正在研究2D太空射击游戏。我正在尝试创建一个系统,其中加电能力将从被摧毁的敌人中随机掉落。

现在我要做的就是在敌人摧毁自己之前,它会在加电对象上调用一个函数。理想情况下,敌人会传递它的平移位置,因此强力对象可以对其进行捕捉,然后从该点“落下”。问题是,现在试图在敌人被摧毁时向上电对象施加速度不起作用。

这是Enemy对象上的方法,它在被销毁时调用Power Up的方法:

void DropPowerUp(){
    PowerUp.GetComponent<PowerUp>().DropPowerUp(transform.position);
    PowerUpReady = false;
}

这是Power Up对象上的DropPowerUp方法:

public void DropPowerUp(Vector3 enemyLoc){
    print("power up dropped");
    this.GetComponent<Rigidbody2D>().velocity = new Vector3(0, -3f, 0);
}

如果我只是进行测试并将速度应用于它的Start方法中的加电对象,那么它将正常工作。上电将按预期下降。而现在,该功能正在由敌人调用,因为我可以在控制台中看到该打印语句。但由于某种原因,我无法从该方法中将速度应用于加电对象。对于为什么这可能不起作用的任何想法?谢谢!

0 个答案:

没有答案