繁体   English   中英

在具有物理和刚体的移动 object 上与玩家呆在一起在 Unity 中不起作用

[英]Staying with player on a moving object with physics and rigidbody doesn't work in Unity

我正在尝试使字符 controller 可以站在使用轮式加力机、刚体和简单脚本的移动火车的地面上,以 go 向前。 我尝试了很多教程,他们将 PlayerController 作为移动平台的子节点,但是当我使用以下脚本时它不起作用:

{
    public GameObject Player;

    private void OnTriggerEnter(Collider other)
    {
        if(other.gameObject == Player)
        {
            Player.transform.parent = transform;
        }
    }

    private void OnTriggerExit(Collider other)
    {
        if (other.gameObject == Player)
        {
            Player.transform.parent = null;
        }
    }
}

这就是我的“火车”的运作方式。 它就像一辆普通的汽车,但它在轨道上滑动,每个车轮下都有 2 个碰撞器。

在编辑器中训练身体图片:编辑器截图

使用该脚本,我的玩家 object 进入火车的孩子,但是当火车移动时,玩家无论如何都会停留在一个地方,或者物理变得疯狂并且它会夹在它上面,但它的速度与火车不同并且它滑到一个随机的地方。 我认为这是因为我使用的脚本通常用于动画平台而不是物理平台。 我对统一和编码真的很陌生,所以如果有人能帮助我解决我的问题,我会非常高兴。

如果玩家也有一个刚体,那将解释这种行为。 您同时使用物理(刚体)和直接变换操作(由于重新设置)来移动玩家。 因此,如果您在骑行过程中不需要控制玩家,您可以关闭玩家的刚体并在他/她离开时再次打开它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM