我实际上是在尝试统一制作2D游戏,在这个游戏中,我们控制一个可以用武器射击子弹的角色。实际上是“ Uzi”,所以射击非常快而且很困难,所以问题是,有时候,取决于与敌人的距离,子弹会穿过敌人的盒子对撞机,所以不要触摸它。我认为这与统一的Update / Fixed更新系统有关,但我不确定。并且子弹已经在碰撞检测“连续”中。其中有一部分代码和屏幕截图。
void OnTriggerEnter2D(Collider2D target)
{
if (target.gameObject.tag == "FirePoint")
{
Fire();
}
if (target.gameObject.tag == "Building")
{
Destroy(gameObject);
//print("Don't shoot on the walls !");
}
Ennemy enemy = target.GetComponent<Ennemy>();
if (target.gameObject.tag == "Ennemi")
{
enemy.TakeDamage(damage);
Destroy(gameObject);
}
}
void Fire()
{
GetComponent<Rigidbody2D>().AddForce(transform.right * bulletForce);
}
在另一个脚本中有射击的方法。
public void Shoot()
{
DispersionDesBalles();
nextFire = Time.time + 1f / fireRate;
Instantiate(Balle, spawnPoint.position, fireRotation);
ballesRestantes--;
}
和错误的屏幕截图在这里
红色的矩形代表敌人,绿色的小东西是子弹,不要关注图形:D,只是用于测试。这很烦人,因为在游戏中,子弹的间距较小,但相当于一样。
我希望有一个人可以帮助我。祝你今天愉快 !
是的,这与物理引擎刷新率有关,刷新率与渲染不同步。在小型和快速对撞机的情况下,您会遇到类似这样的问题。有不同的处理方法,但最简单的方法是增加子弹对撞机的尺寸,以确保它不会通过低谷。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句