gpt4 book ai didi

c# - 在具有物理和刚体的移动物体上与玩家保持一致在 Unity 中不起作用

转载 作者:行者123 更新时间:2023-12-05 07:17:17 27 4
gpt4 key购买 nike

我正在尝试制作可以站在行驶中的火车地面上的角色 Controller ,该火车使用轮对撞机、刚体和简单的脚本来前进。我尝试了很多教程,他们将 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;
}
}
}

这就是我的“火车”的工作方式。它就像一辆普通的汽车,但它是在一个轨道上滑动的,每个轮子下面有两个碰撞体。

编辑器中的车体图片: Editor screenshot

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

最佳答案

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

关于c# - 在具有物理和刚体的移动物体上与玩家保持一致在 Unity 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58867974/

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