在Unity中翻译时游戏对象摔倒

时间:2018-05-10 15:01:36

标签: unity3d unityscript

所以这就是故事。我连续有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);

}

}
}

1 个答案:

答案 0 :(得分:0)

掌握冲突可能会很棘手。您应该在此页面上引用“冲突操作矩阵”。

https://docs.unity3d.com/Manual/CollidersOverview.html

如您在此处看到的,两个运动物体之间的交互不会调用OnCollisionEnter。但是,如果将对撞机设置为触发器并具有运动学特性,则OnTriggerEnter可以。