2D Unity射击错误

亚历克斯·索蒂

我实际上是在尝试统一制作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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章