站在移动平台上无法移动
Standing on moving platform disables movement
在我的游戏中,我有由 Vector3.moveTowards 控制的移动平台。他们工作得很好
我有一个播放器脚本,它有这样的控件:
void Update()
{
var movement = Input.GetAxis("Horizontal");
rigidBody.position += new Vector2(movement, 0) * movementSpeed * Time.deltaTime;
}
这当然不是玩家控制的所有内容,但没有其他任何东西可以改变 position/collider/rigidbody。我有什么工作得很好
问题是当我跳上平台时,播放器会随着平台移动,但不能自行移动
我需要跳跃才能再次移动,只能在空中和不动的地面上
private void OnCollisionEnter2D(Collision2D collision)
{
collision.transform.SetParent(transform);
}
private void OnCollisionExit2D(Collision2D collision)
{
collision.transform.SetParent(null);
}
我尝试使用 addforce 和 movePosition 进行移动,但得到了与我现在遇到的问题类似的结果,但它也发生在不动的地面上
下面是本题相关的平台刚体组件和播放器组件
如果跳转很重要,那么这是它的脚本
void Jump()
{
rigidBody.velocity = new Vector2(rigidBody.velocity.x, 0);
rigidBody.AddForce(new Vector2(0, jumpForce), ForceMode2D.Impulse);
Debug.Log("jump");
}
enter image description here
enter image description here
我完全使用您在此处发布的那些脚本重新构建了您的设置,但一切似乎对我来说都很好。我的猜测是当您设置父对象时出现问题。由于您的触发器和碰撞设置看起来一切正常,我建议如下:
- 尝试以速度而不是位置来操纵左右移动,因为这似乎是我现在可以看到的跳跃和移动之间唯一可见的区别。
- 会不会是您在平台上尝试移动时抓取了错误的刚体组件? (比如你抢的是平台之一,而不是玩家之一?)
希望对您有所帮助! (我会把它作为评论发布,但我还没有足够的代表)
在我的游戏中,我有由 Vector3.moveTowards 控制的移动平台。他们工作得很好 我有一个播放器脚本,它有这样的控件:
void Update()
{
var movement = Input.GetAxis("Horizontal");
rigidBody.position += new Vector2(movement, 0) * movementSpeed * Time.deltaTime;
}
这当然不是玩家控制的所有内容,但没有其他任何东西可以改变 position/collider/rigidbody。我有什么工作得很好 问题是当我跳上平台时,播放器会随着平台移动,但不能自行移动 我需要跳跃才能再次移动,只能在空中和不动的地面上
private void OnCollisionEnter2D(Collision2D collision)
{
collision.transform.SetParent(transform);
}
private void OnCollisionExit2D(Collision2D collision)
{
collision.transform.SetParent(null);
}
我尝试使用 addforce 和 movePosition 进行移动,但得到了与我现在遇到的问题类似的结果,但它也发生在不动的地面上 下面是本题相关的平台刚体组件和播放器组件
如果跳转很重要,那么这是它的脚本
void Jump()
{
rigidBody.velocity = new Vector2(rigidBody.velocity.x, 0);
rigidBody.AddForce(new Vector2(0, jumpForce), ForceMode2D.Impulse);
Debug.Log("jump");
}
enter image description here enter image description here
我完全使用您在此处发布的那些脚本重新构建了您的设置,但一切似乎对我来说都很好。我的猜测是当您设置父对象时出现问题。由于您的触发器和碰撞设置看起来一切正常,我建议如下:
- 尝试以速度而不是位置来操纵左右移动,因为这似乎是我现在可以看到的跳跃和移动之间唯一可见的区别。
- 会不会是您在平台上尝试移动时抓取了错误的刚体组件? (比如你抢的是平台之一,而不是玩家之一?)
希望对您有所帮助! (我会把它作为评论发布,但我还没有足够的代表)