void myPieSliceHoverFunction(WMG_Pie_Graph pieGraph, WMG_Pie_Graph_Slice aSlice, bool hover) {
		//Debug.Log("Pie Slice Hover: " + pieGraph.sliceLabels[aSlice.sliceIndex]);
		if (hover) {
			Vector3 newPos = graph.getPositionFromExplode(aSlice, 30);
			WMG_Anim.animPosition(aSlice.gameObject, 1, DG.Tweening.Ease.OutQuad, newPos);
		}
		else {
			Vector3 newPos = graph.getPositionFromExplode(aSlice, 0);
			WMG_Anim.animPosition(aSlice.gameObject, 1, DG.Tweening.Ease.OutQuad, newPos);
		}
	}
Example #2
0
    void InteractivityChanged()
    {
        if (interactivityEnabled)
        {
            explodeSymmetrical = false;
        }
        for (int i = 0; i < slices.Count; i++)
        {
            WMG_Pie_Graph_Slice pieSlice           = slices[i].GetComponent <WMG_Pie_Graph_Slice>();
            WMG_Raycatcher      pieSliceRaycatcher = pieSlice.objectToColor.GetComponent <WMG_Raycatcher>();
            if (pieSliceRaycatcher != null && !interactivityEnabled)
            {
                Destroy(pieSliceRaycatcher);
            }
            if (pieSliceRaycatcher == null && interactivityEnabled)
            {
                pieSlice.objectToColor.AddComponent <WMG_Raycatcher>();
            }
            if (interactivityEnabled)
            {
                setAsNotInteractible(pieSlice.objectToLabel);
            }
        }

        Canvas canvas = null;

        getFirstCanvasOnSelfOrParent(this.transform, ref canvas);
        if (!canvas)
        {
            Debug.LogError("No Canvas found for Pie Graph");
            return;
        }

        WMG_Raycaster canvasRaycaster = canvas.GetComponent <WMG_Raycaster>();

        if (canvasRaycaster == null)
        {
            if (interactivityEnabled)
            {
                canvas.gameObject.AddComponent <WMG_Raycaster>();
            }
        }
        else
        {
            if (!interactivityEnabled)
            {
                DestroyImmediate(canvasRaycaster);
                addRaycaster(canvas.gameObject);
            }
        }
    }
 void myPieSliceHoverFunction(WMG_Pie_Graph pieGraph, WMG_Pie_Graph_Slice aSlice, bool hover)
 {
     //GlobalVariableBackground.Instance.conManager.WriteLog("Pie Slice Hover: " + pieGraph.sliceLabels[aSlice.sliceIndex]);
     if (hover)
     {
         Vector3 newPos = graph.getPositionFromExplode(aSlice, 30);
         WMG_Anim.animPosition(aSlice.gameObject, 1, DG.Tweening.Ease.OutQuad, newPos);
     }
     else
     {
         Vector3 newPos = graph.getPositionFromExplode(aSlice, 0);
         WMG_Anim.animPosition(aSlice.gameObject, 1, DG.Tweening.Ease.OutQuad, newPos);
     }
 }
 void myPieSliceHoverFunction(WMG_Pie_Graph pieGraph, WMG_Pie_Graph_Slice aSlice, bool hover)
 {
     //Debug.Log("Pie Slice Hover: " + pieGraph.sliceLabels[aSlice.sliceIndex]);
     if (hover)
     {
         Vector3 newPos = graph.getPositionFromExplode(aSlice, 30);
         WMG_Anim.animPosition(aSlice.gameObject, 1, DG.Tweening.Ease.OutQuad, newPos);
     }
     else
     {
         Vector3 newPos = graph.getPositionFromExplode(aSlice, 0);
         WMG_Anim.animPosition(aSlice.gameObject, 1, DG.Tweening.Ease.OutQuad, newPos);
     }
 }
Example #5
0
    void CreateOrDeleteSlicesBasedOnValues()
    {
        // Create pie slices based on sliceValues data
        for (int i = 0; i < numSlices; i++)
        {
            if (sliceLabels.Count <= i)
            {
                sliceLabels.Add("");
            }
            if (sliceColors.Count <= i)
            {
                sliceColors.Add(Color.white);
            }
            if (slices.Count <= i)
            {
                GameObject curObj = CreateNode(nodePrefab, slicesParent);
                slices.Add(curObj);
                WMG_Pie_Graph_Slice pieSlice = curObj.GetComponent <WMG_Pie_Graph_Slice>();
                setTexture(pieSlice.objectToColor, pieSprite);
                setTexture(pieSlice.objectToMask, pieSprite);
                changeExplodeSymmetrical(pieSlice);
            }
            if (legend.legendEntries.Count <= i)
            {
                legend.createLegendEntry(legendEntryPrefab);
            }
        }
        for (int i = slices.Count - 1; i >= 0; i--)
        {
            if (slices[i] != null && i >= numSlices)
            {
                WMG_Pie_Graph_Slice theSlice = slices[i].GetComponent <WMG_Pie_Graph_Slice>();
                DeleteNode(theSlice);
                slices.RemoveAt(i);
            }
        }

        // If there are more sliceLegendEntries or slices than sliceValues data, delete the extras
        for (int i = legend.legendEntries.Count - 1; i >= 0; i--)
        {
            if (legend.legendEntries[i] != null && i >= numSlices)
            {
                legend.deleteLegendEntry(i);
            }
        }
    }
Example #6
0
    void initDoughnut()
    {
        if (doughnutHasInit)
        {
            return;
        }
        doughnutHasInit = true;
        GameObject temp    = GameObject.Instantiate(nodePrefab) as GameObject;
        Texture2D  origTex = getTexture(temp.GetComponent <WMG_Pie_Graph_Slice>().objectToColor);

        colors     = origTex.GetPixels();
        origColors = origTex.GetPixels();
        pieSprite  = WMG_Util.createSprite(origTex);
        Destroy(temp);
        for (int i = 0; i < slices.Count; i++)
        {
            WMG_Pie_Graph_Slice pieSlice = slices[i].GetComponent <WMG_Pie_Graph_Slice>();
            setTexture(pieSlice.objectToColor, pieSprite);
            setTexture(pieSlice.objectToMask, pieSprite);
        }
    }
Example #7
0
 void myPieSliceHoverFunction(WMG_Pie_Graph pieGraph, WMG_Pie_Graph_Slice aSlice, bool hover)
 {
     Debug.Log("Pie Slice Hover: " + pieGraph.sliceLabels[aSlice.sliceIndex]);
     if (hover)
     {
         Vector3 newPos = graph.getPositionFromExplode(aSlice, 15);
         graph.WMG_Pie_Slice_MouseEnter -= myPieSliceHoverFunction;
         WMG_Anim.animPositionCallbackC(aSlice.gameObject, 1, DG.Tweening.Ease.OutQuad, newPos, () =>
         {
             graph.WMG_Pie_Slice_MouseEnter += myPieSliceHoverFunction;
         });
     }
     else
     {
         Vector3 newPos = graph.getPositionFromExplode(aSlice, 0);
         graph.WMG_Pie_Slice_MouseEnter -= myPieSliceHoverFunction;
         WMG_Anim.animPositionCallbackC(aSlice.gameObject, 1, DG.Tweening.Ease.OutQuad, newPos, () =>
         {
             graph.WMG_Pie_Slice_MouseEnter += myPieSliceHoverFunction;
         });
     }
 }
 void myPieSliceClickFunction(WMG_Pie_Graph pieGraph, WMG_Pie_Graph_Slice aSlice)
 {
     //Debug.Log("Pie Slice Clicked: " + pieGraph.sliceLabels[aSlice.sliceIndex]);
 }
 void myPieSliceClickFunction(WMG_Pie_Graph pieGraph, WMG_Pie_Graph_Slice aSlice)
 {
     //GlobalVariableBackground.Instance.conManager.WriteLog("Pie Slice Clicked: " + pieGraph.sliceLabels[aSlice.sliceIndex]);
 }
	void OnEnable()
	{
		slice = (WMG_Pie_Graph_Slice)target;
	}
 void OnEnable()
 {
     slice = (WMG_Pie_Graph_Slice)target;
 }
Example #12
0
    public Vector3 getPositionFromExplode(WMG_Pie_Graph_Slice slice, float amt)
    {
        float angle = Mathf.Deg2Rad * (-slice.slicePercentPosition + 90);

        return(new Vector3(amt * Mathf.Cos(angle), amt * Mathf.Sin(angle), 0));
    }
Example #13
0
 void myPieSliceClickFunction(WMG_Pie_Graph pieGraph, WMG_Pie_Graph_Slice aSlice, UnityEngine.EventSystems.PointerEventData pointerEventData)
 {
     //Debug.Log("Pie Slice Clicked: " + pieGraph.sliceLabels[aSlice.sliceIndex]);
 }
	public Vector3 getPositionFromExplode(WMG_Pie_Graph_Slice slice, float amt) {
		float angle = Mathf.Deg2Rad * (-slice.slicePercentPosition + 90);
		return new Vector3(amt * Mathf.Cos(angle), amt * Mathf.Sin(angle), 0);
	}
Example #15
0
 void SliceClickEvent(WMG_Pie_Graph pieGraph, WMG_Pie_Graph_Slice aSlice)
 {
     Debug.Log("== : " + aSlice.name);
     WMG_Anim.animScale(aSlice.gameObject, 0.5f, Ease.Linear, Vector3.one * 0.8f, 0);
 }
Example #16
0
 void changeExplodeSymmetrical(WMG_Pie_Graph_Slice pieSlice)
 {
     SetActive(pieSlice.objectToMask, explodeSymmetrical);
     if (explodeSymmetrical) {
         changeSpriteParent(pieSlice.objectToColor, pieSlice.objectToMask);
     }
     else {
         changeSpriteParent(pieSlice.objectToColor, pieSlice.gameObject);
         bringSpriteToFront(pieSlice.objectToLabel);
     }
 }
Example #17
0
    void UpdateVisuals(bool noAnim)
    {
        // Update internal bookkeeping variables
        UpdateData();

        // Creates and deletes slices and slice legend objects based on the slice values
        CreateOrDeleteSlicesBasedOnValues();

        if (totalVal == 0 && numSlices > 0)
        {
            return;                                         // all values are 0, or mixed negative and positive values
        }
        // Update explode symmetrical
        for (int i = 0; i < numSlices; i++)
        {
            WMG_Pie_Graph_Slice pieSlice = slices[i].GetComponent <WMG_Pie_Graph_Slice>();
            SetActive(pieSlice.objectToMask, explodeSymmetrical);
            if (explodeSymmetrical)
            {
                changeSpriteParent(pieSlice.objectToColor, pieSlice.objectToMask);
            }
            else
            {
                changeSpriteParent(pieSlice.objectToColor, pieSlice.gameObject);
                bringSpriteToFront(pieSlice.objectToLabel);
            }
        }

        int thePieSize = Mathf.RoundToInt(pieSize);

        updateBG(thePieSize);

        if (animationDuration == 0 && sortBy != sortMethod.None)
        {
            sortData();
        }
        float curTotalRot = 0;

        if (!noAnim)
        {
            animSortSwap = false;                  // Needed because if sortAnimationDuration = 0, nothing sets animSortSwap to false
        }
        for (int i = 0; i < numSlices; i++)
        {
            // Update Pie Slices
            float newAngle = -1 * curTotalRot;
            if (newAngle < 0)
            {
                newAngle += 360;
            }
            WMG_Pie_Graph_Slice pieSlice = slices[i].GetComponent <WMG_Pie_Graph_Slice>();
            if (sliceLabelType != WMG_Enums.labelTypes.None && !activeInHierarchy(pieSlice.objectToLabel))
            {
                SetActive(pieSlice.objectToLabel, true);
            }
            if (sliceLabelType == WMG_Enums.labelTypes.None && activeInHierarchy(pieSlice.objectToLabel))
            {
                SetActive(pieSlice.objectToLabel, false);
            }

            if (!explodeSymmetrical)
            {
                changeSpriteSize(pieSlice.objectToColor, thePieSize, thePieSize);
            }
            else
            {
                changeSpriteSize(pieSlice.objectToColor, thePieSize, thePieSize);
                changeSpriteSize(pieSlice.objectToMask,
                                 thePieSize + Mathf.RoundToInt(explodeLength * 4),
                                 thePieSize + Mathf.RoundToInt(explodeLength * 4));
            }

            // Set Slice Data and maybe Other Slice Data
            Color  sliceColor = sliceColors[i];
            string sliceLabel = sliceLabels[i];
            float  sliceValue = sliceValues[i];
            if (isOtherSlice && i == numSlices - 1)
            {
                sliceColor = includeOthersColor;
                sliceLabel = includeOthersLabel;
                sliceValue = otherSliceValue;
            }
            if (!LabelToSliceMap.ContainsKey(sliceLabel))
            {
                LabelToSliceMap.Add(sliceLabel, pieSlice);
            }

            // Hide if 0
            if (sliceValue == 0)
            {
                SetActive(pieSlice.objectToLabel, false);
            }

            float slicePercent = sliceValue / totalVal;
            pieSlice.slicePercent = slicePercent * 360;
            float afterExplodeAngle = newAngle * -1 + 0.5f * slicePercent * 360;
            float sliceLabelRadius  = sliceLabelExplodeLength + thePieSize / 2;
            float sin = Mathf.Sin(afterExplodeAngle * Mathf.Deg2Rad);
            float cos = Mathf.Cos(afterExplodeAngle * Mathf.Deg2Rad);

            if (!noAnim && animationDuration > 0)
            {
                isAnimating = true;
                WMG_Anim.animFill(pieSlice.objectToColor, animationDuration, Ease.Linear, slicePercent);
                WMG_Anim.animPosition(pieSlice.objectToLabel, animationDuration, Ease.Linear, new Vector3(sliceLabelRadius * sin,
                                                                                                          sliceLabelRadius * cos));
                int newI = i;
                WMG_Anim.animPositionCallbackC(slices[i], animationDuration, Ease.Linear, new Vector3(explodeLength * sin,
                                                                                                      explodeLength * cos), () => shrinkSlices(newI));
                if (!explodeSymmetrical)
                {
                    WMG_Anim.animRotation(pieSlice.objectToColor, animationDuration, Ease.Linear, new Vector3(0, 0, newAngle), false);
                    WMG_Anim.animPosition(pieSlice.objectToColor, animationDuration, Ease.Linear, Vector3.zero);
                }
                else
                {
                    WMG_Anim.animRotation(pieSlice.objectToColor, animationDuration, Ease.Linear, Vector3.zero, false);
                    Vector2 newPos = new Vector2(-explodeLength * sin, -explodeLength * cos);
                    float   sin2   = Mathf.Sin(newAngle * Mathf.Deg2Rad);
                    float   cos2   = Mathf.Cos(newAngle * Mathf.Deg2Rad);
                    WMG_Anim.animPosition(pieSlice.objectToColor, animationDuration, Ease.Linear, new Vector3(cos2 * newPos.x + sin2 * newPos.y, cos2 * newPos.y - sin2 * newPos.x));
                    // Mask
                    WMG_Anim.animRotation(pieSlice.objectToMask, animationDuration, Ease.Linear, new Vector3(0, 0, newAngle), false);
                    WMG_Anim.animFill(pieSlice.objectToMask, animationDuration, Ease.Linear, slicePercent);
                }
            }
            else
            {
                changeSpriteFill(pieSlice.objectToColor, slicePercent);
                pieSlice.objectToLabel.transform.localPosition = new Vector3(sliceLabelRadius * sin,
                                                                             sliceLabelRadius * cos);
                slices[i].transform.localPosition = new Vector3(explodeLength * sin,
                                                                explodeLength * cos);
                if (!explodeSymmetrical)
                {
                    pieSlice.objectToColor.transform.localEulerAngles = new Vector3(0, 0, newAngle);
                    pieSlice.objectToColor.transform.localPosition    = Vector3.zero;
                }
                else
                {
                    pieSlice.objectToColor.transform.localEulerAngles = Vector3.zero;
                    Vector2 newPos = new Vector2(-explodeLength * sin, -explodeLength * cos);
                    float   sin2   = Mathf.Sin(newAngle * Mathf.Deg2Rad);
                    float   cos2   = Mathf.Cos(newAngle * Mathf.Deg2Rad);
                    pieSlice.objectToColor.transform.localPosition = new Vector3(cos2 * newPos.x + sin2 * newPos.y, cos2 * newPos.y - sin2 * newPos.x);
                    // Mask
                    pieSlice.objectToMask.transform.localEulerAngles = new Vector3(0, 0, newAngle);
                    changeSpriteFill(pieSlice.objectToMask, slicePercent);
                }
            }

            // Update slice color
            changeSpriteColor(pieSlice.objectToColor, sliceColor);
            changeSpriteColor(pieSlice.objectToMask, sliceColor);

            // Update slice labels
            changeLabelText(pieSlice.objectToLabel, getLabelText(sliceLabel, sliceLabelType, sliceValue, slicePercent, numberDecimalsInPercents));
            changeLabelFontSize(pieSlice.objectToLabel, sliceLabelFontSize);
            changeSpriteColor(pieSlice.objectToLabel, sliceLabelColor);

            // Update Gameobject names
            slices[i].name = sliceLabel;
            legend.legendEntries[i].name = sliceLabel;

            curTotalRot += slicePercent * 360;

            pieSlice.slicePercentPosition = curTotalRot - pieSlice.slicePercent / 2;

            // Update legend
            WMG_Legend_Entry entry = legend.legendEntries[i];
            changeLabelText(entry.label, getLabelText(sliceLabel, legend.labelType, sliceValue, slicePercent, legend.numDecimals));
            changeSpriteColor(entry.swatchNode, sliceColor);
            // Hide legend if 0
            if (hideZeroValueLegendEntry)
            {
                if (sliceValue == 0)
                {
                    SetActive(entry.gameObject, false);
                }
                else
                {
                    SetActive(entry.gameObject, true);
                }
            }
            else
            {
                SetActive(entry.gameObject, true);
            }
        }
        legend.LegendChanged();

        updateAutoCenter();

        if (!setOrig)
        {
            setOrig = true;
            setOriginalPropertyValues();
        }
    }
Example #18
0
    void UpdateVisuals(bool noAnim)
    {
        // Update internal bookkeeping variables
        UpdateData();

        // Creates and deletes slices and slice legend objects based on the slice values
        CreateOrDeleteSlicesBasedOnValues();

        // Update background
        changeSpriteHeight(background, Mathf.RoundToInt(pieSize + topBotPadding.x + topBotPadding.y));
        changeSpriteWidth(background, Mathf.RoundToInt(pieSize + leftRightPadding.x + leftRightPadding.y));
        changeSpriteSize(backgroundCircle, Mathf.RoundToInt(pieSize + bgCircleOffset), Mathf.RoundToInt(pieSize + bgCircleOffset));
        Vector2 offset = getPaddingOffset();

        changeSpritePositionTo(slicesParent, new Vector3(-offset.x, -offset.y));

        if (animationDuration == 0 && sortBy != sortMethod.None)
        {
            sortData();
        }
        float curTotalRot = 0;

        if (!noAnim)
        {
            animSortSwap = false;                  // Needed because if sortAnimationDuration = 0, nothing sets animSortSwap to false
        }
        for (int i = 0; i < numSlices; i++)
        {
            WMG_Legend_Entry entry = legend.legendEntries[i];
            // Update Pie Slices
            float newAngle = -1 * curTotalRot;
            if (newAngle < 0)
            {
                newAngle += 360;
            }
            WMG_Pie_Graph_Slice pieSlice = slices[i].GetComponent <WMG_Pie_Graph_Slice>();
            if (sliceLabelType != WMG_Enums.labelTypes.None && !activeInHierarchy(pieSlice.objectToLabel))
            {
                SetActive(pieSlice.objectToLabel, true);
            }
            if (sliceLabelType == WMG_Enums.labelTypes.None && activeInHierarchy(pieSlice.objectToLabel))
            {
                SetActive(pieSlice.objectToLabel, false);
            }

            if (!explodeSymmetrical)
            {
                changeSpriteSize(pieSlice.objectToColor, Mathf.RoundToInt(pieSize), Mathf.RoundToInt(pieSize));
            }
            else
            {
                int newSize = Mathf.RoundToInt(pieSize + explodeLength * 2);
                changeSpriteSize(pieSlice.objectToColor, newSize, newSize);
                changeSpriteSize(pieSlice.objectToMask, newSize + Mathf.RoundToInt(explodeLength * 4), newSize + Mathf.RoundToInt(explodeLength * 4));
            }

            // Set Slice Data and maybe Other Slice Data
            Color  sliceColor = sliceColors[i];
            string sliceLabel = sliceLabels[i];
            float  sliceValue = sliceValues[i];
            if (isOtherSlice && i == numSlices - 1)
            {
                sliceColor = includeOthersColor;
                sliceLabel = includeOthersLabel;
                sliceValue = otherSliceValue;
            }

            // Hide if 0
            if (sliceValue == 0)
            {
                SetActive(pieSlice.objectToLabel, false);
            }

            float slicePercent      = sliceValue / totalVal;
            float afterExplodeAngle = newAngle * -1 + 0.5f * slicePercent * 360;
            float sliceLabelRadius  = sliceLabelExplodeLength + pieSize / 2;
            float sin = Mathf.Sin(afterExplodeAngle * Mathf.Deg2Rad);
            float cos = Mathf.Cos(afterExplodeAngle * Mathf.Deg2Rad);

            if (!noAnim && animationDuration > 0)
            {
                isAnimating = true;
                WMG_Anim.animFill(pieSlice.objectToColor, animationDuration, Ease.Linear, slicePercent);
                WMG_Anim.animPosition(pieSlice.objectToLabel, animationDuration, Ease.Linear, new Vector3(sliceLabelRadius * sin,
                                                                                                          sliceLabelRadius * cos));
                int newI = i;
                WMG_Anim.animPositionCallbackC(slices[i], animationDuration, Ease.Linear, new Vector3(explodeLength * sin,
                                                                                                      explodeLength * cos), () => shrinkSlices(newI));
                if (!explodeSymmetrical)
                {
                    WMG_Anim.animRotation(pieSlice.objectToColor, animationDuration, Ease.Linear, new Vector3(0, 0, newAngle), false);
                    WMG_Anim.animPosition(pieSlice.objectToColor, animationDuration, Ease.Linear, Vector3.zero);
                }
                else
                {
                    WMG_Anim.animRotation(pieSlice.objectToColor, animationDuration, Ease.Linear, Vector3.zero, false);
                    Vector2 newPos = new Vector2(-explodeLength * sin, -explodeLength * cos);
                    float   sin2   = Mathf.Sin(newAngle * Mathf.Deg2Rad);
                    float   cos2   = Mathf.Cos(newAngle * Mathf.Deg2Rad);
                    WMG_Anim.animPosition(pieSlice.objectToColor, animationDuration, Ease.Linear, new Vector3(cos2 * newPos.x + sin2 * newPos.y, cos2 * newPos.y - sin2 * newPos.x));
                    // Mask
                    WMG_Anim.animRotation(pieSlice.objectToMask, animationDuration, Ease.Linear, new Vector3(0, 0, newAngle), false);
                    WMG_Anim.animFill(pieSlice.objectToMask, animationDuration, Ease.Linear, slicePercent);
                }
            }
            else
            {
                changeSpriteFill(pieSlice.objectToColor, slicePercent);
                pieSlice.objectToLabel.transform.localPosition = new Vector3(sliceLabelRadius * sin,
                                                                             sliceLabelRadius * cos);
                slices[i].transform.localPosition = new Vector3(explodeLength * sin,
                                                                explodeLength * cos);
                if (!explodeSymmetrical)
                {
                    pieSlice.objectToColor.transform.localEulerAngles = new Vector3(0, 0, newAngle);
                    pieSlice.objectToColor.transform.localPosition    = Vector3.zero;
                }
                else
                {
                    pieSlice.objectToColor.transform.localEulerAngles = Vector3.zero;
                    Vector2 newPos = new Vector2(-explodeLength * sin, -explodeLength * cos);
                    float   sin2   = Mathf.Sin(newAngle * Mathf.Deg2Rad);
                    float   cos2   = Mathf.Cos(newAngle * Mathf.Deg2Rad);
                    pieSlice.objectToColor.transform.localPosition = new Vector3(cos2 * newPos.x + sin2 * newPos.y, cos2 * newPos.y - sin2 * newPos.x);
                    // Mask
                    pieSlice.objectToMask.transform.localEulerAngles = new Vector3(0, 0, newAngle);
                    changeSpriteFill(pieSlice.objectToMask, slicePercent);
                }
            }

            // Update slice color
            changeSpriteColor(pieSlice.objectToColor, sliceColor);
            changeSpriteColor(pieSlice.objectToMask, sliceColor);

            // Update slice labels
            changeLabelText(pieSlice.objectToLabel, getLabelText(sliceLabel, sliceLabelType, sliceValue, slicePercent, numberDecimalsInPercents));
            pieSlice.objectToLabel.transform.localScale = new Vector3(sliceLabelFontSize, sliceLabelFontSize);

            // Update Gameobject names
            slices[i].name = sliceLabel;
            legend.legendEntries[i].name = sliceLabel;

            // Update legend
            changeLabelText(entry.label, getLabelText(sliceLabel, legend.labelType, sliceValue, slicePercent, legend.numDecimals));
            changeSpriteColor(entry.swatchNode, sliceColor);

            // Hide legend if 0
            if (sliceValue == 0)
            {
                SetActive(entry.gameObject, false);
            }
            else
            {
                SetActive(entry.gameObject, true);
            }

            curTotalRot += slicePercent * 360;
        }
    }
	void myPieSliceClickFunction(WMG_Pie_Graph pieGraph, WMG_Pie_Graph_Slice aSlice) {
		//Debug.Log("Pie Slice Clicked: " + pieGraph.sliceLabels[aSlice.sliceIndex]);
	}