public GameObject Point1;//限制点1
public GameObject Point2;//限制点2
public float carSpeed = 0.5f;//移动速度
private bool WTrigger = false;//是否是触发状态
private bool STrigger = false;
void Update()
{
if (WTrigger == false && Input.GetKey(KeyCode.A))//如果不是触发状态
{
transform.Translate(-1 * carSpeed * Time.deltaTime, 0,0);//往哪个轴的,我这里是x轴的方向
}
if (STrigger == false && Input.GetKey(KeyCode.D))//如果不是触发状态
{
transform.Translate(1 * carSpeed * Time.deltaTime, 0,0);//往哪个轴的,我这里是x轴的方向
}
}
//触发器离开的事件
public void OnTriggerExit(Collider other)
{
if (Input.GetKey(KeyCode.A)) { STrigger = false; }
if (Input.GetKey(KeyCode.D)) { WTrigger = false; }
}
//触发器刚触发产生的事件
public void OnTriggerEnter(Collider other)
{
if (other.gameObject.name == "Point1") { STrigger = true; }
if (other.gameObject.name == "Point2") { WTrigger = true; }
}
最终效果如下: