在触发器上推回敌人

时间:2016-04-08 15:53:27

标签: c# unity3d

我有两个游戏对象,其中一个是我的英雄"另一个是带有NavMesh的敌人,我设法使卫生系统没有问题,但知道当剑与敌人发生碰撞时,看起来僵硬的身体不起作用或因为我试过了我在互联网上发现的一些解决方案,但似乎没有任何效果。一旦剑与它碰撞,我希望敌人被推开。我试过这个:

public void takeDamage() { 
  // revert rigidbody velocity:
  rigidbody.velocity *= -1;
}

另一个代码

float distance = 25.0f;
                if (player.position.x < enemyPosition.position.x) {
                    Vector3 new_position = new Vector3 (distance, enemyPosition.position.y, enemyPosition.position.z);
                    rb.position = new_position;
                }

由于

编辑:

似乎用这段代码解决了:

Vector3 new_position = new Vector3 (3.0f, 0f, 0f) + rb.transform.position;
rb.transform.position = new_position;

1 个答案:

答案 0 :(得分:0)

测试一下

   void OnCollisionEnter(Collision collision) {
        if (collision.relativeVelocity.magnitude > 1)
            rb.velocity = new Vector3(0, 10, 0);
    }