android - 为什么我的 OnTriggerEnter2D 事件仅在不应该触发的情况下在 android 上触发?
问题描述
我一直在努力解决仅在我在 Android 设备上安装游戏时才会发生的碰撞错误。
我有一个非常简单的游戏,比如空气曲棍球。一些对象代表桨、一个冰球、几个用于得分的端区和墙壁。每当我移动其中一个桨并以非常低的速度与冰球碰撞时,我的 ontriggerenter2d 事件会在我的末端区域触发,即使冰球远不及末端区域。这是我的端区控制器脚本中的 OnTriggerEnter2d 函数:
// EndZone
void OnTriggerEnter2D(Collider2D Other)
{
Debug.Log("EndZone::OnTriggerEnter2D " + playerNumber.ToString());
if (Other.gameObject.tag == "Puck")
{
Observer.SendMessage("Score", "" + playerNumber.ToString());
}
}
我不确定还有哪些其他信息可能是相关的。如果认为有必要,我将提供包括我的整个项目在内的任何要求。
此错误仅在我实际构建到 android 时发生,而不是在我在桌面上运行游戏时发生。即使我使用平板电脑和统一遥控器来提供输入。
更新:我刚刚发现的更多信息:
我的 PaddleController 中的代码连接到我的桨:
void OnCollisionEnter2D(Collision2D coll)
{
Debug.Log("PaddleController::OnCollisionEnter2D " + coll.gameObject.tag);
if (coll.gameObject.tag == "Puck")
{
// Commenting out the following "AddForce" statement causes the bug to not happen
coll.gameObject.GetComponent<Rigidbody2D>().AddForce(CurrVelocity);
SoundManager.RandomizeSfxPitch(click);
}
}
void OnCollisionStay2D(Collision2D coll)
{
if (coll.gameObject.tag == "Puck")
{
// Commenting out the following "AddForce" statement causes the bug to not happen
coll.gameObject.GetComponent<Rigidbody2D>().AddForce(CurrVelocity);
}
}
解决方案
推荐阅读
- c++ - 如何将网络模块添加到 QT pro 文件中?
- nlp - 在哪里可以找到 SpaCy 依赖解析标签或注释的完整列表?
- c# - System.Text.Json 自定义 JsonConverter 从未调用
- python - 我不能使用 pywinauto 和 White 库,说 FAIL: AttributeError: 'NoneType' object has no attribute 'Get'
- php - 每天获取数据记录
- perl - 为什么 Perl Net::LDAP 与 GSSAPI SASL 绑定在 Debian buster 上连接到错误的 sasl_ssf?
- java - Swagger 2 如何仅从请求示例中排除属性
- angular - 缺少必需参数:client_id SPOTIFY API ANGULAR PROJECT
- python - 使用多处理在 python 脚本之间传递数据
- wix - Wix 工具集 msi 不会从 powershell 脚本安装其他安装程序