首页 > 解决方案 > 在 Unity 中翻译时游戏对象掉落

问题描述

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

}

}
}

标签: c#unity3d

解决方案


碰撞可能很难掌握。您应该参考此页面上的碰撞行动矩阵。

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

如您所见,两个运动体之间的交互不会调用 OnCollisionEnter。但是,如果您将对撞机设置为触发器和运动学,则 OnTriggerEnter 会。


推荐阅读