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()); } }
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()); } }
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); } }
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; }
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"); }