【发布时间】:2021-11-17 16:20:32
【问题描述】:
我正在创建一个 2D 平台汽车游戏,例如爬山赛车。我有一个功能,玩家车辆在前往目标的途中收集助推器和燃料。它是通过使用 OnTriggerEnter2D 完成的。当我在编辑器和 Bluestacks 模拟器上玩游戏时,它工作得很好。但是我没有安卓手机,所以我把他的vpk发给我的朋友测试,但他们总是抱怨助推器有时会收集,但有时它不会收集,车辆只是通过它。我将 Booster 制作为预制件并将其用于所有关卡,但他们说助推器有时会被收集,但有时即使在同一关卡中也不会收集。我对燃料和助推器使用相同的方法,但燃料工作正常。什么可能导致这个问题?我的车辆有一个刚体并设置为连续碰撞检测。并且错误可能在任何时间、任何级别发生。
碰撞处理代码:
void OnTriggerEnter2D(Collider2D col)
{
if (col.gameObject.CompareTag("Nboost"))
{
Booster.stat_boost_pick_sound.Play();
Booster.collectedBoost += 1f;
Destroy(col.gameObject);
}
if (col.gameObject.CompareTag("fuel"))
{
Booster.stat_boost_pick_sound.Play();
Speedometer.static_fuel += 20f;
Destroy(col.gameObject);
}
}
汽车运动代码:
void MoveCar()
{
static_frontWheel.AddTorque(-input * static_carSpeed * Time.fixedDeltaTime);
static_backWheel.AddTorque(-input * static_carSpeed * Time.fixedDeltaTime);
static_car.AddTorque(-input * static_carTorque * Time.fixedDeltaTime);
}
【问题讨论】:
-
嗯,有几个问题(将答案添加到您的帖子中):您的车辆是刚体吗?你的物理和游戏时间步长是多少?这个错误是只发生在更高级别还是几乎任何时候都会发生?
-
@SneakyPolarBear 什么是物理和游戏时间步长?