Пример #1
0
	// 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;
    }
Пример #2
0
	// 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;
            }
        }
    }
Пример #3
0
    // 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;
            }
        }
    }
Пример #4
0
 // 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;
 }