gpt4 book ai didi

c# - 2d Unity 射击错误

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:26 27 4
gpt4 key购买 nike

我实际上正在尝试制作一款统一的 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--;
}

错误的截图Here

红色矩形是敌人,绿色小东西是子弹,不要注意图形 :D,这只是为了测试。这很烦人,因为在游戏中,子弹间距较小,但它等同于同一件事。

我希望有人能帮助我。祝你有美好的一天!

最佳答案

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

关于c# - 2d Unity 射击错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53139921/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com