예제 #1
0
    IEnumerator CloseDoors()
    {
        if (doorClosingSoundClip != null)
        {
            audioSource.PlayOneShot(doorClosingSoundClip, 0.7F);
        }

        status = DoubleSlidingDoorStatus.Animating;

        float t = 0f;

        while (t < 1f)
        {
            t += Time.deltaTime * speed;

            halfDoorLeftTransform.localPosition = Vector3.Slerp(leftDoorOpenPosition, leftDoorClosedPosition, t);
            if (doubleDoors)
            {
                halfDoorRightTransform.localPosition = Vector3.Slerp(rightDoorOpenPosition, rightDoorClosedPosition, t);
            }

            yield return(null);
        }

        status = DoubleSlidingDoorStatus.Closed;
    }
예제 #2
0
    IEnumerator OpenDoors()
    {
        if (doorOpeningSoundClip != null)
        {
            audioSource.PlayOneShot(doorOpeningSoundClip, 0.7F);
        }

        status = DoubleSlidingDoorStatus.Animating;

        float t = 0f;

        while (t < 1f)
        {
            t += Time.deltaTime * speed;

            doorTransform.localPosition = Vector3.Slerp(doorClosedPosition, doorOpenPosition, t);

            yield return(null);
        }

        status = DoubleSlidingDoorStatus.Open;
    }
예제 #3
0
    private IEnumerator OpenDoors()
    {
        if (doorOpeningSoundClip != null)
        {
            _audioSource.PlayOneShot(doorOpeningSoundClip, 0.7F);
        }

        _status = DoubleSlidingDoorStatus.Animating;

        var t = 0f;

        while (t < 1f)
        {
            t += Time.deltaTime * speed;

            halfDoorLeftTransform.localPosition  = Vector3.Slerp(_leftDoorClosedPosition, _leftDoorOpenPosition, t);
            halfDoorRightTransform.localPosition = Vector3.Slerp(_rightDoorClosedPosition, _rightDoorOpenPosition, t);

            yield return(null);
        }

        _status = DoubleSlidingDoorStatus.Open;
    }