Unity3D入门(十一):疯狂教室案例开发
mayuan1993:
用触发器实现了自动开门,但是刚体在刚刚进入触发范围的时候,门会不停开关,完全进入触发范围才会打开门不动,离开触发范围会关门。
这个问题怎么解决?
[code=csharp]
public class zidongkaimen : MonoBehaviour
{
private Transform m_Transform;
void Start () {
m_Transform = gameObject.GetComponent();
}
void Update () {
if(Input.GetKeyDown(KeyCode.X))
{
OpenDoor();
}
if (Input.GetKeyUp(KeyCode.X))
{
CloseDoor();
}
}
public void OpenDoor()
{
m_Transform.Rotate(Vector3.up, 90);
}
public void CloseDoor()
{
m_Transform.Rotate(Vector3.up, -90);
}
void OnTriggerEnter(Collider coll)
{
if(coll.gameObject.name == "学生")
{
OpenDoor();
Debug.Log("自动开门");
}
}
void OnTriggerExit(Collider coll)
{
if(coll.gameObject.name == "学生")
{
CloseDoor();
Debug.Log("自动关门");
}
}
}
[/code]
|