Unity简单滑动门.碰撞器在移动,但不移动实际对象



我一直在尝试制作一个自动门,当玩家走近门时,它会自动打开,然后在离开该区域后关闭。我尝试了不同的方法,用不同的物体作为碰撞传感器来移动门,甚至在门上使用箱式碰撞器,但都不起作用。碰撞器将移动,但之后您将逐步穿过门。


public float maximumOpening = 3;
public float maximumClosing = 0;
public float movementSpeed = 1;
bool playerIsHere;
bool opening;
void Start()
{
playerIsHere = false;
opening = false;
}
void Update()
{
if(playerIsHere)
{
if (movingDoor.transform.position.x < maximumOpening)
{
movingDoor.transform.position += Vector3.forward * Time.deltaTime;
}
else
{
if (movingDoor.transform.position.x > maximumClosing)
{
movingDoor.transform.position += -Vector3.forward * Time.deltaTime;
}

}
}
}
private void OnTriggerEnter(Collider col)
{
if(col.gameObject.tag == "Player")
{
playerIsHere = true;
}
}
private void OnTriggerExit(Collider col)
{
if (col.gameObject.tag == "Player")
{
playerIsHere = false;
}
}

https://imgur.com/a/C4AmoUl

它不应该更像以下内容吗:

if (playerIsHere && movingDoor.transform.position.x < maximumOpening)
{
movingDoor.transform.position += Vector3.forward * Time.deltaTime;
}
else if (movingDoor.transform.position.x > maximumClosing)
{
movingDoor.transform.position += -Vector3.forward * Time.deltaTime;             
}

因为否则,只有当玩家真的在门里时,门才会做任何事情,否则什么都不做,希望这有帮助:(

最新更新