我试图将玩家传送到一定的距离。我使用了Gameobject.transform.position += new Vector3(0,9,0);
,它似乎在很短的时间内改变了位置,并以某种方式被迫回到以前的位置,所以它看起来从未移动过。enter image description here
private void OnTriggerEnter(Collider Other)
{
Debug.Log("Collided");
if (IsGoingDown)
{
Debug.Log("x: " + playerBody.transform.position.x + " y: " + playerBody.transform.position.y);
playerBody.transform.position = playerBody.transform.position + new Vector3(0,9,0);
Debug.Log("x: " + playerBody.transform.position.x + " y: " + playerBody.transform.position.y);
Debug.Log("Going Down");
}
else
{
playerBody.transform.position = playerBody.transform.position + new Vector3(0,-9,0);
Debug.Log("Going Up");
}
}
想知道是什么迫使位置改变回来,如何修复它。
1条答案
按热度按时间9bfwbjaz1#
我不确定其他代码的基础结构,我不知道这是否可能是一个问题,但我认为问题是,当传送时,代码在第二个点再次执行,角色被引导到相反的方向。
使用临时计时器解决问题。