/// <summary> /// Reset parameters, only got 1 button in the middle (Cancel), without other post-defined buttons /// </summary> private void ResetParams() { mousePosition = new Vector2(0, 0); //prevMenuID = 0; currMenuID = -1; currPressedID = -1; MenuState = PieMenuState.NOT_INIT; SetHoverMenuItem(0); }
private IEnumerator SpinPieMenu(int pieID, float targetDegree) { float currBisector = items[pieID].RotationStartZ + eachAngle * 0.5f; float diffDegree = targetDegree - currBisector; // It seems like no need spinning if (Mathf.Abs(diffDegree) < 1) { yield break; } MenuState = PieMenuState.ON_ANIMATION; // Make sure it is not spinning too much if (diffDegree < -180) { diffDegree += 360; } else if (diffDegree > 180) { diffDegree -= 360; } float degreePerSec = diffDegree / SPIN_TIME; for (float i = 0; i <= SPIN_TIME; i += Time.deltaTime) { float currRotation = i * degreePerSec; for (int p = 1; p < items.Count; ++p) { items[p].MoveToAngle(items[p].RotationStartZ + currRotation); } yield return(null); } // Set the accurate value and set to RotationStartZ for (int p = 1; p < items.Count; ++p) { float targetAxisZ = items[p].RotationStartZ + diffDegree; if (targetAxisZ < 0) { targetAxisZ += 360; } else if (targetAxisZ > 360) { targetAxisZ -= 360; } items[p].MoveToAngle(targetAxisZ); items[p].RotationStartZ = targetAxisZ; } MenuState = PieMenuState.PRESSED; }
private IEnumerator PieMenuFade(bool fadeIn) { MenuState = PieMenuState.ON_ANIMATION; if (fadeIn) { //gameObject.SetActive(true); //PhysicalPancake.SetActive(true); //cursorObj.SetActive(false); for (float i = 0; i <= FADE_IN; i += Time.deltaTime) { float percentage = i / FADE_IN; objCanvasGroup.alpha = percentage; gameObject.transform.localScale = Vector3.one * percentage; //PhysicalPancake.transform.localScale = Vector3.one * percentage; yield return(null); } objCanvasGroup.alpha = 1; //cursorObj.SetActive(true); // Ready, start mvoing the cursor after the animation MenuState = PieMenuState.READY; } else { //PhysicalPancake.SetActive(false); for (float i = FADE_OUT; i >= 0; i -= Time.deltaTime) { float percentage = i / FADE_OUT; objCanvasGroup.alpha = percentage; gameObject.transform.localScale = Vector3.one * percentage; //PhysicalPancake.transform.localScale = Vector3.one * percentage; yield return(null); } objCanvasGroup.alpha = 0; gameObject.transform.localScale = Vector3.zero; //cursorObj.SetActive(false); MenuState = PieMenuState.NOT_INIT; gameObject.SetActive(false); } }