【发布时间】:2018-11-04 10:40:09
【问题描述】:
我实际上是在尝试制作一个统一的 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,只是为了测试。这很烦人,因为在游戏中,子弹之间的间距较小,但它相当于同一件事。
我希望有人可以帮助我。祝你有美好的一天!
【问题讨论】:
-
玩转“连续动态”模式,不仅适用于子弹,也适用于敌人。
-
我会试试的,谢谢
-
„连续动态“很昂贵,如果可能,您应该避免使用它。如果您可以通过更改碰撞器的大小来使其工作,那么它应该会更好地提高性能。