gpt4 book ai didi

c# - 当以移动平台为 parent 时,角色移动缓慢

转载 作者:行者123 更新时间:2023-12-05 06:55:28 26 4
gpt4 key购买 nike

我正在使用 Unity 开发一款 2D 平台游戏。我的角色通过对刚体施加速度来移动,并按照我想要的方式进行精确控制。

当角色在移动平台上时,我将角色作为移动平台的父级,以便角色在平台移动时保持不动。这是移动平台上的代码

    private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Player")
{
collision.collider.transform.SetParent(transform);
}
}

private void OnCollisionExit2D(Collision2D collision)
{
if (collision.gameObject.tag == "Player")
{
collision.collider.transform.SetParent(null);
}
}

我还使用 transform.position 从一个位置到另一个位置来移动平台。

问题来了。仅当平台速度为 0 时,角色才能完美运行。如果平台在移动,角色在平台上行走时会像鼻涕虫一样移动。关于如何解决这个问题的任何想法,或者有没有办法让角色在移动平台上骑行而不需要它的父级?

编辑:我之前忘了包括这个。我已经测试过物理 Material 是否会有所作为。我在角色、平台上同时添加了 0 摩擦物理 Material 。这些组合都没有任何区别。平台移动时播放器仍然移动缓慢。

最佳答案

如果您使用力和刚体移动您的角色,层次结构和谁是父级不会有太大影响,因为运动是由力提供的,这与物理有关。如果你在代码中操纵转换对于运动来说很重要,但如果运动是由力产生的,我认为它不是。我会检查玩家和平台的物理 Material 的摩擦力,以定义元素相互尊重的运动。

关于c# - 当以移动平台为 parent 时,角色移动缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65335446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com