子弹并不总是击中敌人

Bullet not always hitting Enemy

void OnCollisionEnter(Collision col){

        if (col.gameObject.name == "Enemy1") {
                    enemyDamage++;

            GameObject clone = (GameObject) Instantiate (tempBloodSplat,enemyObj.position,enemyObj.rotation);
                    Destroy (clone , 0.5f);
            if (enemyDamage > 3) {

                anim.SetFloat ("Die", 0.5f);
                Destroy (enemyObj.gameObject , 5.0f);
            }
            Debug.Log ("Bullet is hitting Enemy");
        }
    }

这是我的代码,我用在 BulletObject

  1. 我的 Bullet Object 有 Collider
  2. 我的敌人有对撞机
  3. 我的敌人有一个刚体body
  4. 子弹没有刚性body

我有问题,当我射击时,子弹击中了他范围内的敌人,就像敌人body下面的圆圈,Image

有时子弹正确命中(表示敌人被伤害),但有时子弹没有对敌人造成任何伤害就跑出去了,我不知道为什么happening.Does子弹的速度有任何问题对它的影响..

请帮助或指导我解决这个问题,谢谢

如果您没有在子弹上使用刚体,那么您可能正在直接更新子弹位置向量,可能发生的情况如下: 。由于子弹不是刚体,Unity 不会 'assume' 它应该表现得像一个刚体,因此不会对子弹运动进行实际的物理模拟(这可能包括从开始位置到结束位置的光线投射和碰撞检查之间)。如果您在向子弹添加刚体时遇到问题,请自己进行光线投射。您甚至可以了解到 unity 背后的物理模拟实际上是如何工作的!

祝你好运!