子弹并不总是击中敌人
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
- 我的 Bullet Object 有 Collider
- 我的敌人有对撞机
- 我的敌人有一个刚体body
- 子弹没有刚性body
我有问题,当我射击时,子弹击中了他范围内的敌人,就像敌人body下面的圆圈,Image
有时子弹正确命中(表示敌人被伤害),但有时子弹没有对敌人造成任何伤害就跑出去了,我不知道为什么happening.Does子弹的速度有任何问题对它的影响..
请帮助或指导我解决这个问题,谢谢
如果您没有在子弹上使用刚体,那么您可能正在直接更新子弹位置向量,可能发生的情况如下:
。由于子弹不是刚体,Unity 不会 'assume' 它应该表现得像一个刚体,因此不会对子弹运动进行实际的物理模拟(这可能包括从开始位置到结束位置的光线投射和碰撞检查之间)。如果您在向子弹添加刚体时遇到问题,请自己进行光线投射。您甚至可以了解到 unity 背后的物理模拟实际上是如何工作的!
祝你好运!
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
- 我的 Bullet Object 有 Collider
- 我的敌人有对撞机
- 我的敌人有一个刚体body
- 子弹没有刚性body
我有问题,当我射击时,子弹击中了他范围内的敌人,就像敌人body下面的圆圈,Image
有时子弹正确命中(表示敌人被伤害),但有时子弹没有对敌人造成任何伤害就跑出去了,我不知道为什么happening.Does子弹的速度有任何问题对它的影响..
请帮助或指导我解决这个问题,谢谢
如果您没有在子弹上使用刚体,那么您可能正在直接更新子弹位置向量,可能发生的情况如下:
祝你好运!