Пример #1
0
    IEnumerator StretchRoutine()
    {
        state = !state;

        float elapsedTime = 0;
        float ratio       = elapsedTime / duration;
        float endpoint;

        if (state)
        {
            endpoint = 2f;
        }
        else
        {
            endpoint = 1f;
        }

        float startpoint = transform.localScale.x;


        while (ratio < 1f)
        {
            ratio = elapsedTime / duration;
            float value = Mathf.Lerp(startpoint, endpoint, TweeningFunctions.EaseInOut(ratio));

            transform.localScale = new Vector3(value, transform.localScale.y, transform.localScale.z);

            elapsedTime += Time.fixedDeltaTime;
            yield return(new WaitForFixedUpdate());
        }
    }
Пример #2
0
    IEnumerator RotateRoutine()
    {
        float elapsedTime = 0;
        float ratio       = elapsedTime / duration;
        float start       = transform.localEulerAngles.y;


        while (ratio < 1f)
        {
            ratio = elapsedTime / duration;
            float value = Mathf.Lerp(start, (start + 90f) % 360, TweeningFunctions.EaseInOut(ratio));

            Debug.Log(value);
            transform.localEulerAngles = new Vector3(transform.localEulerAngles.x, value, transform.localEulerAngles.z);

            elapsedTime += Time.fixedDeltaTime;
            yield return(new WaitForFixedUpdate());
        }
    }
Пример #3
0
    private IEnumerator flipTransitionRoutine(float startpoint, float endpoint, float duration)
    {
        float elapsedTime = 0;
        float ratio       = elapsedTime / duration;


        while (ratio < 1f)
        {
            ratio = elapsedTime / duration;
            float value = Mathf.Lerp(startpoint, endpoint, TweeningFunctions.EaseInOut(ratio));

            mask.enabled = false;
            mat.SetFloat("_TransitionState", value);
            mask.enabled = true;

            elapsedTime += Time.deltaTime;
            yield return(null);
        }
    }
Пример #4
0
    private IEnumerator InteractionRoutine()
    {
        float elapsedTime = 0;
        float ratio       = elapsedTime / duration;
        float start       = material.GetFloat("_TransitionStateB");

        while (ratio < 1f)
        {
            ratio = elapsedTime / duration;
            float value = Mathf.Lerp(start, 1f, TweeningFunctions.EaseInOut(ratio));

            //mRenderer.GetPropertyBlock(_propBlock);

            //_propBlock.SetFloat("_TransitionStateB", value);
            //mRenderer.SetPropertyBlock(_propBlock);

            material.SetFloat("_TransitionStateB", value);

            elapsedTime += Time.fixedDeltaTime;
            yield return(new  WaitForFixedUpdate());
        }

        mRenderer.enabled = false;
    }
Пример #5
0
    private IEnumerator MovePlatformCoroutine(Vector3 startPos, Vector3 endPos, float duration)
    {
        checkObjectsPlace();
        platformIsMoving = true;
        Debug.Log("Platformismoving");

        if (startPos.Equals(start) || startPos.Equals(end.position))
        {
            yield return(new WaitForSeconds(.5f));

            PlayAudio(SoundBox.Instance.platformStart);
            yield return(new WaitForSeconds(SoundBox.Instance.platformStart.length));
        }



        audio.loop = true;
        PlayAudio(SoundBox.Instance.platformRunning);

        float elapsedTime = 0;
        float ratio       = elapsedTime / (duration * durationMultiplier);

        PlatformObjectsUnselectable();

        Vector3 carriedObjectPosition = Vector3.zero;

        if (mainGuard.GetComponent <PlatformGuard>().target)
        {
            carriedObjectPosition  = mainGuard.GetComponent <PlatformGuard>().target.transform.position;
            carriedObjectPosition += endPos;

            Debug.Log(mainGuard.GetComponent <PlatformGuard>().target.transform.position.y);
            Debug.Log(carriedObjectPosition.y);
        }

        //yield return new WaitForSeconds(.5f);
        //play starting sound

        while (ratio < 1f)
        {
            if (!playerLayer)
            {
                audio.mute = true;
            }
            else
            {
                audio.mute = false;
            }

            elapsedTime += Time.deltaTime;
            ratio        = elapsedTime / (duration * durationMultiplier);

            transform.position = Vector3.Lerp(startPos, endPos, TweeningFunctions.EaseInOut(ratio));

            yield return(null);
        }

        transform.position = endPos;
        PlatformObjectSelectable();
        mainGuard.SetActive(true);
        yield return(null);


        audio.mute = true;
        audio.loop = false;
        yield return(new WaitForSeconds(.2f));

        audio.Stop();
        audio.mute = false;
        PlayAudio(SoundBox.Instance.platformEnd);

        //if (mainGuard.GetComponent<PlatformGuard>().target)
        //{
        //    mainGuard.GetComponent<PlatformGuard>().target.transform.position = carriedObjectPosition += endPos;
        //}

        platformIsMoving = false;
        Debug.Log("platformStoppedMoving");
    }