コード例 #1
0
 /// <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);
 }
コード例 #2
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;
    }
コード例 #3
0
 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);
     }
 }