This code is to ensure test two conditions:
- User must be within the trigger region
- User must not be stationary for 5 seconds (user must move)
using UnityEngine;
using System.Collections;
public class NoMoveTrigger : MonoBehaviour {
float elapsedTime;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnTriggerStay(Collider other){
if(other.gameObject.CompareTag("Player")){
CharacterController controller = other.gameObject.GetComponent<CharacterController>();
//Timer will start when player stopped moving, reset when it moves
if(controller.velocity == Vector3.zero){
elapsedTime += Time.deltaTime;
Debug.Log ("The elapsed time is: " + elapsedTime);
Debug.Log ("The velocity change is: " + controller.velocity);
if(elapsedTime >= 5){
Debug.Log("You have overstayed!!");
}
}
}
}
void OnTriggerExit(Collider other) {
if(other.gameObject.CompareTag("Player")){
elapsedTime = 0;
}
}
}