示例#1
0
    void CreateOrDeleteSlicesBasedOnValues()
    {
        LabelToSliceMap.Clear();
        // 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>();
                pieSlice.pieRef     = this;
                pieSlice.sliceIndex = i;
                if (useDoughnut)
                {
                    setTexture(pieSlice.objectToColor, pieSprite);
                    setTexture(pieSlice.objectToMask, pieSprite);
                }
                if (interactivityEnabled)
                {
                    pieSlice.objectToColor.AddComponent <WMG_Raycatcher>();
                    setAsNotInteractible(pieSlice.objectToLabel);
                }
                addPieSliceMouseEnterEvent(pieSlice.objectToColor);
                addPieSliceClickEvent(pieSlice.objectToColor);
            }
            if (legend.legendEntries.Count <= i)
            {
                WMG_Legend_Entry legendEntry = legend.createLegendEntry(legendEntryPrefab);
                addPieLegendEntryClickEvent(legendEntry.gameObject);
            }
        }
        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);
            }
        }
    }
示例#2
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);
            }
        }
    }