protected virtual IEnumerator flipTransitionRoutine(float startpoint, float endpoint, float duration) { float elapsedTime = 0; float ratio = elapsedTime / duration; //int property = Shader.PropertyToID("_D7A8CF01"); while (ratio < 1f) { ratio = elapsedTime / duration; float value = Mathf.Lerp(startpoint, endpoint, TweeningFunctions.Tween(tween, ratio)); mRenderer.GetPropertyBlock(_propBlock); _propBlock.SetFloat("_TransitionState", value); mRenderer.SetPropertyBlock(_propBlock); //material.SetFloat("_TransitionState", value); //RendererExtensions.UpdateGIMaterials(mRenderer); elapsedTime += Time.deltaTime; yield return(null); } }
IEnumerator RotateRoutine(float actualDuration) { //Debug.Log("start rotation "+ startRotation + "end rotation " + endRotation + "actualduration " + actualDuration); float elapsedTime = 0f; ratio = 0f; Vector3 start = transform.localEulerAngles; Vector3 end; if (startRotationInLaser && Toolbox.Instance.PlayerInLaser() || (!startRotationInLaser && Toolbox.Instance.PlayerInReal())) { end = startRotation; } else { end = endRotation; } while (ratio < 1f) { ratio = elapsedTime / actualDuration; Vector3 value = Vector3.Lerp(start, end, TweeningFunctions.Tween(tween, ratio)); transform.localEulerAngles = value; if (audio) { audio.volume = TweeningFunctions.BackAndForth(ratio); } elapsedTime += Time.fixedDeltaTime; yield return(new WaitForFixedUpdate()); } ratio = 0f; }