我最近几天一直在解决这个问题,调研了很多方法,但仍然无法解决。
我有一个带有刚体的玩家和一个带有刚体的移动平台。该平台来回移动,我希望玩家能够留在上面。
当玩家跳到平台上时,平台成为其父级。这部分工作正常,没有问题。
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Moving Platform"))
{
transform.parent = collision.gameObject.transform;
}
private void OnCollisionExit2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Moving Platform"))
{
transform.parent = null;
}
}
事实是,由于玩家具有动态刚体,所以似乎其父对象的移动不会影响它。我可以在检查器中看到它的位置在移动,但在游戏中它并没有真正移动。
当我将刚体类型设置为运动学时,玩家留在平台上,但是这时我找不到在上面移动的方法。所以他基本上被卡在了平台上。
这个问题有容易的解决方法吗?还是我应该完全改变制作这些可移动平台的方式。
(顺便说一下,所有的移动都是由物理引擎处理的)
unityscript
是或者更确切来说,曾经是一种像 JavaScript 的自定义语言,被用于早期版本的 Unity 中,但现在已经被废弃了……你的代码显然是c#
。 - derHugo