void Start() { Camera.main.transform.position = new Vector3(4.5f, 6f, -11.5f); Rawdata = DataAdaptor.ReadCSVFile("Assets/stacked_data_accident1.csv"); // reading csv file foreach (string item in Rawdata) { data.Add(float.Parse(item)); // converting data from string to float } columnCount = DataAdaptor.header.Split(',').Length; rowCount = data.Count / columnCount; findMax(); makeAxis(); instantiateBars(); }
// Use this for initialization void Awake() { // Read the data from the file using our "generic" adaptor rawData = DataAdaptor.ReadCSVFile("Assets/circular_heatchart_data.csv"); // Parse the data from strings to floats foreach (string data in rawData) { energyData.Add(float.Parse(data)); } max = 0; min = energyData[0]; // Find the max and min of our array for (int i = 0; i < energyData.Count; i++) { if (energyData[i] > max) { max = energyData[i]; } if (energyData[i] < min) { min = energyData[i]; } } // Create a segment for each data point for (int i = 0; i < energyData.Count; i++) { int ringNumber = i / 12; Mesh segmentWedge = CustomMeshGenerator.Create3DToroidWedge(40, ringNumber + 1, ringNumber + 2, 30, 1); GameObject newSegment = new GameObject("Chart Segment" + (i + 1)); newSegment.AddComponent <MeshCollider>().sharedMesh = segmentWedge; newSegment.AddComponent <MeshFilter>().mesh = segmentWedge; newSegment.AddComponent <MeshRenderer>().material.color = PointToColor(energyData[i]); // localRotation cannot be a vector3, have to use Quaternion newSegment.transform.localRotation = Quaternion.Euler(0, 0, -30 * (i % 12)); } // Move the camera so we can see the whole chart transform.position = new Vector3(0f, 0f, -0.21f * energyData.Count); }