// Use this for initialization void Start () { doorState = door_state.WAITING; timeSinceStateChanged = 0.0f; initialPosition = transform.position; BoxCollider[] boxColliders = transform.GetComponents<BoxCollider>(); boxCollider = boxColliders[0]; if (!boxCollider.isTrigger) boxCollider = boxColliders[1]; boxCollider.enabled = false; }
// Update is called once per frame void Update () { if(world.doUpdate) { timeSinceStateChanged += world.lag; float lerp; float auxY; switch (doorState) { case door_state.GOING_UP: lerp = timeSinceStateChanged / timeToGoUp; if (lerp >= 1.0f) { lerp = 1.0f; timeSinceStateChanged = 0.0f; doorState = door_state.WAITING; } auxY = Mathf.Lerp(initialPosition.y - distance, initialPosition.y, lerp); transform.position = new Vector3(transform.position.x, auxY, transform.position.z); break; case door_state.GOING_DOWN: lerp = timeSinceStateChanged / timeToGoDown; if (lerp >= 1.0f) { lerp = 1.0f; timeSinceStateChanged = 0.0f; doorState = door_state.WAITING_DOWN; boxCollider.enabled = false; //SoundManager.instance.PlaySingle(fall); } auxY = Mathf.Lerp(initialPosition.y, initialPosition.y - distance, lerp); transform.position = new Vector3(transform.position.x, auxY, transform.position.z); break; case door_state.WAITING: if (timeSinceStateChanged >= timeWaiting) { timeSinceStateChanged = 0.0f; doorState = door_state.GOING_DOWN; boxCollider.enabled = true; } break; case door_state.WAITING_DOWN: if (timeSinceStateChanged >= timeWaiting) { timeSinceStateChanged = 0.0f; doorState = door_state.GOING_UP; } break; } } }
// Update is called once per frame void Update() { if (world.doUpdate) { timeSinceStateChanged += world.lag; float lerp; float auxY; switch (doorState) { case door_state.GOING_UP: lerp = timeSinceStateChanged / timeToGoUp; if (lerp >= 1.0f) { lerp = 1.0f; timeSinceStateChanged = 0.0f; doorState = door_state.WAITING; } auxY = Mathf.Lerp(initialPosition.y - distance, initialPosition.y, lerp); transform.position = new Vector3(transform.position.x, auxY, transform.position.z); break; case door_state.GOING_DOWN: lerp = timeSinceStateChanged / timeToGoDown; if (lerp >= 1.0f) { lerp = 1.0f; timeSinceStateChanged = 0.0f; doorState = door_state.WAITING_DOWN; boxCollider.enabled = false; //SoundManager.instance.PlaySingle(fall); } auxY = Mathf.Lerp(initialPosition.y, initialPosition.y - distance, lerp); transform.position = new Vector3(transform.position.x, auxY, transform.position.z); break; case door_state.WAITING: if (timeSinceStateChanged >= timeWaiting) { timeSinceStateChanged = 0.0f; doorState = door_state.GOING_DOWN; boxCollider.enabled = true; } break; case door_state.WAITING_DOWN: if (timeSinceStateChanged >= timeWaiting) { timeSinceStateChanged = 0.0f; doorState = door_state.GOING_UP; } break; } } }
// Use this for initialization void Start() { doorState = door_state.WAITING; timeSinceStateChanged = 0.0f; initialPosition = transform.position; BoxCollider[] boxColliders = transform.GetComponents <BoxCollider>(); boxCollider = boxColliders[0]; if (!boxCollider.isTrigger) { boxCollider = boxColliders[1]; } boxCollider.enabled = false; }