【发布时间】:2021-03-22 19:39:06
【问题描述】:
所以过去几天我一直坚持这一点,研究并尝试了很多东西,但仍然无法弄清楚。
我有一个带有刚体的播放器和一个带有刚体的移动平台。平台在来回移动,我希望玩家在他打开时留在上面。
所以当玩家跳上平台时,平台就成为它的父平台。这工作正常,没有问题。
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;
}
}
问题是,由于玩家有一个动态刚体,看起来它的父级的移动不会影响他。我可以看到他在检查员中的位置在移动,但在游戏中并没有真正移动。
当我将身体类型设置为运动学时,玩家会停留在平台上,但我无法找到在平台上实际移动的方法。所以他基本上卡在了平台上。
有没有简单的解决方法?或者我应该完全改变我制作这些移动平台的方式。
(顺便说一句,每个动作都用物理处理)
【问题讨论】:
-
你好,你能提供你的移动播放器脚本的代码吗?
-
终于修好了,平台随着物理而移动,我只是将其更改为 transform.Translate
-
请使用正确的标签...
unityscript是或更好 曾经是一种 JavaScript 风格,类似于早期 Unity 版本中使用的自定义语言,现在早已弃用...你的代码显然是c#