private IEnumerator openMenu() { if (BeforeMenuOpened != null) { BeforeMenuOpened(this); } host.Signal("OnBeforeMenuOpened", this); isAnimating = true; var animate = animateOpacity || animateOpenAngle || animateRadius; if (animate) { var time = Mathf.Max(0.1f, animationLength); var animOpenAngle = new dfAnimatedFloat(animateOpenAngle ? 0 : openAngle, openAngle, time); var animRadius = new dfAnimatedFloat(animateRadius ? 0 : radius, radius, time); var animOpacity = new dfAnimatedFloat(this.animateOpacity ? 0 : 1, 1, time); var endTime = Time.realtimeSinceStartup + time; while (Time.realtimeSinceStartup < endTime) { arrangeButtons(this.startAngle, animRadius, animOpenAngle, animOpacity); yield return(null); } } arrangeButtons(); isOpen = true; isAnimating = false; if (MenuOpened != null) { MenuOpened(this); } host.Signal("OnMenuOpened", this); }