繁体   English   中英

2d Unity 射击错误

[英]2d Unity Shooting bug

我实际上是在尝试制作一个具有统一性的 2d 游戏,在这个游戏中,我们控制一个可以用武器射击子弹的角色。 实际上是一个“Uzi”,所以它射得又快又硬,(所以,一把枪)问题是,有时,根据与敌人的距离,子弹会穿过敌人的盒子对撞机,所以不要触摸它。 我认为这与统一的更新/固定更新系统有关,但我不确定。 和子弹已经在碰撞检测连续。 有一部分代码,还有截图。

 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,只是为了测试。很烦人,因为在游戏中,子弹间距较小,但相当于一样。

我希望有一个人可以帮助我。 祝你今天过得愉快 !

是的,它与与渲染不同步的物理引擎刷新率有关。 在小而快速的碰撞体的情况下,你会遇到这样的问题。 有不同的处理方法,但最简单的方法是增加子弹对撞机的尺寸以确保它不会通过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM