所以这就是故事。我连续有4个游戏对象,彼此相邻。我有一个立方体。当立方体与游戏对象碰撞时,我希望它们被翻译,但是当我开始翻译它们时,它们开始从地图上掉下来。有人说在刚体上使用Kinematic,但是当我使用Kinematic(甚至静态)时,我不能再碰撞/翻译它们了。有人对此有任何解决方案吗?
这是我的碰撞代码供参考:
void OnCollisionEnter(Collision collision)
{
Debug.Log("Collision");
if (collision.gameObject.name == "SectionOne")
{
collision.gameObject.transform.Translate(0, 0, section_placement);
}
else if (collision.gameObject.name == "SectionTwo")
{
collision.gameObject.transform.Translate(0, 0, section_placement);
}
else if (collision.gameObject.name == "SectionThree")
{
collision.gameObject.transform.Translate(0, 0, section_placement);
}
else if (collision.gameObject.name == "SectionFour")
{
collision.gameObject.transform.Translate(0, 0, section_placement);
}
}
}
答案 0 :(得分:0)
掌握冲突可能会很棘手。您应该在此页面上引用“冲突操作矩阵”。
https://docs.unity3d.com/Manual/CollidersOverview.html
如您在此处看到的,两个运动物体之间的交互不会调用OnCollisionEnter。但是,如果将对撞机设置为触发器并具有运动学特性,则OnTriggerEnter可以。