子弹穿过玩家

时间:2020-05-23 21:23:09

标签: unity3d

我正在使用团结,当敌人射击时,子弹通过就向玩家扔了。我不知道该怎么解决。这是我的代码:

tf.convert_to_tensor()

}

我在子弹上贴了一个名为BulletEnemy的标签,但它不起作用

2 个答案:

答案 0 :(得分:0)

您的速度值有多快?

在高速下,子弹可能在一帧中移动得比您要击中的物体的深度更远。您仍然可以通过将子弹的位置存储为矢量的每一帧,以及在下一帧上在当前位置和上一帧中的最后一个已知位置之间投射射线的方式来检测碰撞。如果射线击中了敌人,则调用与物理碰撞时相同的功能。

由于子弹速度的影响,无法仅使用OnCollisionEnter做到这一点。

答案 1 :(得分:0)


  1. 检查子弹的速度。如果它们太快,您的物理引擎将忽略碰撞,因此不会调用OnCollisionEnter
  2. 为播放器使用较大的Collider。并检查播放器对象上的Player标签。还请确保您标记的对象具有Collider2D组件。
  3. OnCollisionEnter2D更改为OnCollisionStay2D。如果您要销毁子弹,则运行时不会有任何区别
相关问题