我有两个带碰撞器的物体。球体对象("球")应该与网格碰撞("目标"):
他们都是非kimetric。
我使用下一个代码:
function OnCollisionEnter(theCollision : Collision){
if(theCollision.gameObject.name == "goal" )
{
(tm.GetComponent(TextMesh) as TextMesh).text = "enter1";
forceAmount.z=-1000;
rb.AddForce(forceAmount);
}
}
代码在统一模拟器中完美运行 但是当我将它构建到apk文件并安装在我的Android平板电脑上时,它不起作用。
任何人都可以帮我这个吗?
答案 0 :(得分:1)
Unity的做法是将游戏对象设置为Tag
。标签的使用很轻,您可以从编辑器设置标签,然后使用:
if (theCollision.gameObject.tag == "goal")
答案 1 :(得分:0)
我遇到了类似的问题 - 在编辑器中检测到了碰撞但在Android中没有检测到。我通过将半径从0.5调整到20来解决它。
答案 2 :(得分:0)
我遇到了同样的问题,似乎Unity将标签部署到Android设备时存在一些问题。
在我的场景中,我有一个RigidBody和一个PreFab(设置为触发器)。在我的代码中,我设置了OnTriggerEnter以检查触发项目的标记,如果它与我的PreFab标记相同,我会隐藏触发的项目。
此代码在我的编辑器中运行良好,但是,当我将此解决方案部署到Android设备时,它无法正常工作。
在测试和修改了几件事之后,解决问题的方法是为我的PreFab使用一个预定义标签(而不是我使用“PickUpItem”的自定义标签)。
在我看来,在向Android设备发送自定义标签时会出现问题,但对于预设标签,它可以正常工作。
答案 3 :(得分:0)
我只是在2019年遇到了这个问题。在阅读了一些评论之后,似乎仍然存在将标签部署到Android的错误。我正在使用
if(col.gameObject.tag == "tagName")
但是我将其更改为检查gameObject.name
并有效。
答案 4 :(得分:0)
2019年,同一问题,由我在删除一些未使用的标签后引起。只是重启Unity即可。