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); } } }
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); } } }