public override int GetHashCode() { unchecked { return(((BarrierData != null ? BarrierData.GetHashCode() : 0) * 397) ^ (Node != null ? Node.GetHashCode() : 0)); } }
private void SaveSelectedSection() { SectionData selectedSectionData = _levels.LevelDatas[_selectedLevel].Sections[_selectedSection]; selectedSectionData.CubeDatas = new System.Collections.Generic.List <CubeData>(); selectedSectionData.BarrierDatas = new System.Collections.Generic.List <BarrierData>(); foreach (var cube in _grid.GetComponentsInChildren <Cube>()) { CubeData cubeData = new CubeData() { CellPosition = cube.CellPosition, CubeType = cube.CubeType }; selectedSectionData.CubeDatas.Add(cubeData); } foreach (var barrierCube in _grid.GetComponentsInChildren <BarrierCube>()) { BarrierData barrierData = new BarrierData() { StartCellPosition = barrierCube.StartCellPosition, EndCellPosition = barrierCube.EndCellPosition }; selectedSectionData.BarrierDatas.Add(barrierData); } SaveLevelsAsset(_levels); Debug.Log($"Saved {selectedSectionData.CubeDatas.Count} cubes, {selectedSectionData.BarrierDatas.Count} barriers to Level {_selectedLevel}, Section {_selectedSection}"); }
public void deleteObject(BarrierData data) { GameObject barrierObject = barrierObjects[data.index]; barrierObjects.Remove(data.index); Destroy(barrierObject); barrierObjectsData.Remove(data.index); deleteUpdateArray(); }
public void addObject(BarrierData data) { barrierObjectsData.Add(data.index, data); GameObject newObject = null; Quaternion quaternion = Quaternion.identity; Vector3 position = data.geometryData.position; switch (data.geometryData.geometryType) { case GeometryData.GeometryType.CUBE: quaternion = Quaternion.Euler(((CubeGeometryData)data.geometryData).direction); newObject = Instantiate(cubeObject, position, quaternion, transform); newObject.transform.localScale = ((CubeGeometryData)data.geometryData).size; break; case GeometryData.GeometryType.SPHERE: newObject = Instantiate(sphereObject, position, quaternion, transform); float r = ((SphereGeometryData)data.geometryData).r; newObject.transform.localScale = new Vector3(r * 2, r * 2, r * 2); break; case GeometryData.GeometryType.CYLINDER: quaternion = Quaternion.Euler(((CylinderGeometryData)data.geometryData).direction); newObject = Instantiate(cylinderObject, position, quaternion, transform); newObject.transform.localScale = new Vector3(((CylinderGeometryData)data.geometryData).r * 2, ((CylinderGeometryData)data.geometryData).height, ((CylinderGeometryData)data.geometryData).r); break; default: break; } barrierObjects.Add(data.index, newObject); addUpdateArray(); }
public void setObject(BarrierData data) { BarrierData oldData = barrierObjectsData[data.index]; GameObject barrierObject = barrierObjects[data.index]; if (oldData.geometryData.geometryType == data.geometryData.geometryType) { switch (data.geometryData.geometryType) { case GeometryData.GeometryType.CUBE: barrierObject.transform.position = ((CubeGeometryData)data.geometryData).position; barrierObject.transform.localEulerAngles = ((CubeGeometryData)data.geometryData).direction; barrierObject.transform.localScale = ((CubeGeometryData)data.geometryData).size; break; case GeometryData.GeometryType.SPHERE: barrierObject.transform.position = ((SphereGeometryData)data.geometryData).position; float r = ((SphereGeometryData)data.geometryData).r; barrierObject.transform.localScale = new Vector3(r * 2, r * 2, r * 2); break; case GeometryData.GeometryType.CYLINDER: barrierObject.transform.position = ((CylinderGeometryData)data.geometryData).position; barrierObject.transform.localEulerAngles = ((CylinderGeometryData)data.geometryData).direction; barrierObject.transform.localScale = new Vector3(((CylinderGeometryData)data.geometryData).r * 2, ((CylinderGeometryData)data.geometryData).height, ((CylinderGeometryData)data.geometryData).r); break; default: break; } barrierObjectsData[data.index] = data; } else { barrierObjects.Remove(data.index); Destroy(barrierObject); GameObject newObject = null; Quaternion quaternion = Quaternion.identity; Vector3 position = data.geometryData.position; switch (data.geometryData.geometryType) { case GeometryData.GeometryType.CUBE: quaternion = Quaternion.Euler(((CubeGeometryData)data.geometryData).direction); newObject = Instantiate(cubeObject, position, quaternion, transform); newObject.transform.localScale = ((CubeGeometryData)data.geometryData).size; break; case GeometryData.GeometryType.SPHERE: newObject = Instantiate(cylinderObject, position, quaternion, transform); float r = ((SphereGeometryData)data.geometryData).r; newObject.transform.localScale = new Vector3(r * 2, r * 2, r * 2); break; case GeometryData.GeometryType.CYLINDER: quaternion = Quaternion.Euler(((CylinderGeometryData)data.geometryData).direction); newObject = Instantiate(cubeObject, position, quaternion, transform); newObject.transform.localScale = new Vector3(((CylinderGeometryData)data.geometryData).r * 2, ((CylinderGeometryData)data.geometryData).height, ((CylinderGeometryData)data.geometryData).r); break; default: break; } barrierObjects.Add(data.index, newObject); barrierObjectsData[data.index] = data; } setUpdateArray(); }
public void load(string path) { //删除现有的object List <int> deleteIndex = new List <int>(); foreach (var item in data) { if (item.Key > 2) { deleteIndex.Add(item.Key); } } foreach (var item in deleteIndex) { destroyObject(item); } StreamReader sr = new StreamReader(path, Encoding.Default); string line; string[] lineParts; //configuration line = sr.ReadLine(); lineParts = line.Split('-'); number = int.Parse(lineParts[1].Substring(lineParts[1].IndexOf('=') + 1)); //ground line = sr.ReadLine(); lineParts = line.Split('-'); ((GroundData)data[0]).size = float.Parse(lineParts[5].Substring(lineParts[5].IndexOf('=') + 1)); setData(data[0]); //light line = sr.ReadLine(); lineParts = line.Split('-'); ((LightData)data[1]).intensity = float.Parse(lineParts[5].Substring(lineParts[5].IndexOf('=') + 1)); string[] RGB = lineParts[6].Split(':'); int r = int.Parse(RGB[1].Substring(RGB[1].IndexOf('=') + 1)); int g = int.Parse(RGB[2].Substring(RGB[2].IndexOf('=') + 1)); int b = int.Parse(RGB[3].Substring(RGB[3].IndexOf('=') + 1)); ((LightData)data[1]).color = new Color(r, g, b); setData(data[1]); //logDensity line = sr.ReadLine(); lineParts = line.Split('-'); ((LogSmokeDensityData)data[2]).logFlag = bool.Parse(lineParts[5].Substring(lineParts[5].IndexOf('=') + 1)); ((LogSmokeDensityData)data[2]).interval = float.Parse(lineParts[6].Substring(lineParts[6].IndexOf('=') + 1)); setData(data[2]); //data while ((line = sr.ReadLine()) != null) { lineParts = line.Split('-'); Data newData = new Data(0, "", 0, false); newData.index = int.Parse(lineParts[1].Substring(lineParts[1].IndexOf('=') + 1)); newData.name = lineParts[2].Substring(lineParts[2].IndexOf('=') + 1); newData.deletable = bool.Parse(lineParts[4].Substring(lineParts[4].IndexOf('=') + 1)); switch (lineParts[3].Substring(lineParts[3].IndexOf('=') + 1)) { case "BARRIER": { newData.dataType = Data.type.BARRIER; BarrierData barrierData = null; Vector3 position = vector3Parse(lineParts[6].Substring(lineParts[6].IndexOf('=') + 1)); string typeString = lineParts[5].Substring(lineParts[5].IndexOf('=') + 1); switch (typeString) { case "cube": { Vector3 size = vector3Parse(lineParts[7].Substring(lineParts[7].IndexOf('=') + 1)); Vector3 direction = vector3Parse(lineParts[8].Substring(lineParts[8].IndexOf('=') + 1)); CubeGeometryData cubeGeometryData = new CubeGeometryData(position, size, direction); barrierData = new BarrierData(newData.index, newData.name, newData.dataType, newData.deletable, cubeGeometryData); addObject(barrierData); break; } case "sphere": { float radius = float.Parse((lineParts[7].Substring(lineParts[7].IndexOf('=') + 1))); SphereGeometryData sphereGeometryData = new SphereGeometryData(position, radius); barrierData = new BarrierData(newData.index, newData.name, newData.dataType, newData.deletable, sphereGeometryData); addObject(barrierData); break; } case "cylinder": { float radius = float.Parse((lineParts[7].Substring(lineParts[7].IndexOf('=') + 1))); float height = float.Parse((lineParts[8].Substring(lineParts[8].IndexOf('=') + 1))); Vector3 direction = vector3Parse(lineParts[9].Substring(lineParts[9].IndexOf('=') + 1)); CylinderGeometryData cylinderGeometryData = new CylinderGeometryData(position, radius, height, direction); barrierData = new BarrierData(newData.index, newData.name, newData.dataType, newData.deletable, cylinderGeometryData); addObject(barrierData); break; } } break; } case "WIND": { newData.dataType = Data.type.WIND; WindData windData = null; float intensity = float.Parse(lineParts[5].Substring(lineParts[5].IndexOf('=') + 1)); float interfence = float.Parse(lineParts[6].Substring(lineParts[6].IndexOf('=') + 1)); Vector3 position = vector3Parse(lineParts[8].Substring(lineParts[8].IndexOf('=') + 1)); string typeString = lineParts[7].Substring(lineParts[7].IndexOf('=') + 1); switch (typeString) { case "cube": { Vector3 size = vector3Parse(lineParts[9].Substring(lineParts[9].IndexOf('=') + 1)); Vector3 direction = vector3Parse(lineParts[10].Substring(lineParts[10].IndexOf('=') + 1)); CubeGeometryData cubeGeometryData = new CubeGeometryData(position, size, direction); windData = new WindData(newData.index, newData.name, newData.dataType, newData.deletable, cubeGeometryData, intensity, interfence); addObject(windData); break; } case "sphere": { float radius = float.Parse((lineParts[9].Substring(lineParts[9].IndexOf('=') + 1))); SphereGeometryData sphereGeometryData = new SphereGeometryData(position, radius); windData = new WindData(newData.index, newData.name, newData.dataType, newData.deletable, sphereGeometryData, intensity, interfence); addObject(windData); break; } case "cylinder": { float radius = float.Parse((lineParts[9].Substring(lineParts[9].IndexOf('=') + 1))); float height = float.Parse((lineParts[10].Substring(lineParts[10].IndexOf('=') + 1))); Vector3 direction = Vector3.zero; CylinderGeometryData cylinderGeometryData = new CylinderGeometryData(position, radius, height, direction); windData = new WindData(newData.index, newData.name, newData.dataType, newData.deletable, cylinderGeometryData, intensity, interfence); addObject(windData); break; } } break; } case "SMOKE": { newData.dataType = Data.type.SMOKE; SmokeData smokeData = null; string smokeTypeString = lineParts[5].Substring(lineParts[5].IndexOf('=') + 1); switch (smokeTypeString) { case "smoke": { float duration = float.Parse(lineParts[6].Substring(lineParts[6].IndexOf('=') + 1)); int maxNumber = int.Parse(lineParts[7].Substring(lineParts[7].IndexOf('=') + 1)); float particleSize = float.Parse(lineParts[8].Substring(lineParts[8].IndexOf('=') + 1)); float speed = float.Parse(lineParts[9].Substring(lineParts[9].IndexOf('=') + 1)); RGB = lineParts[10].Split(':'); int r_value = int.Parse(RGB[1].Substring(RGB[1].IndexOf('=') + 1)); int g_value = int.Parse(RGB[2].Substring(RGB[2].IndexOf('=') + 1)); int b_value = int.Parse(RGB[3].Substring(RGB[3].IndexOf('=') + 1)); Color color = new Color(r_value, g_value, b_value); Vector3 position = vector3Parse(lineParts[12].Substring(lineParts[12].IndexOf('=') + 1)); string typeString = lineParts[11].Substring(lineParts[11].IndexOf('=') + 1); switch (typeString) { case "cycle": { float radius = float.Parse((lineParts[13].Substring(lineParts[13].IndexOf('=') + 1))); Vector3 direction = vector3Parse(lineParts[14].Substring(lineParts[14].IndexOf('=') + 1)); CycleGeometryData cycleGeometryData = new CycleGeometryData(position, radius, direction); smokeData = new SmokeData(newData.index, newData.name, newData.dataType, newData.deletable, cycleGeometryData, new PhysicalData(particleSize, duration, maxNumber, speed), SmokeData.SmokeType.SMOKE, color); addObject(smokeData); break; } case "cylinder": { float radius = float.Parse((lineParts[13].Substring(lineParts[13].IndexOf('=') + 1))); float height = float.Parse((lineParts[14].Substring(lineParts[14].IndexOf('=') + 1))); Vector3 direction = vector3Parse((lineParts[15].Substring(lineParts[15].IndexOf('=') + 1))); CylinderGeometryData cylinderGeometryData = new CylinderGeometryData(position, radius, height, direction); smokeData = new SmokeData(newData.index, newData.name, newData.dataType, newData.deletable, cylinderGeometryData, new PhysicalData(particleSize, duration, maxNumber, speed), SmokeData.SmokeType.SMOKE, color); addObject(smokeData); break; } } break; } case "fire": { CycleGeometryData cycleGeometryData = new CycleGeometryData( new Vector3(0f, 0.5f, 0f), 0.1f, new Vector3(0f, 0f, 0f) ); PhysicalData physicalData = new PhysicalData( 0.01f, 10.0f, 1000, 3f ); smokeData = new SmokeData(smokeData.index, smokeData.name, Data.type.BARRIER, true, cycleGeometryData, physicalData, SmokeData.SmokeType.FIRE, new Color(0, 0, 0)); addObject(smokeData); break; } case "explosion": { CycleGeometryData cycleGeometryData = new CycleGeometryData( new Vector3(0f, 0.5f, 0f), 0.1f, new Vector3(0f, 0f, 0f) ); PhysicalData physicalData = new PhysicalData( 0.01f, 10.0f, 1000, 3f ); smokeData = new SmokeData(smokeData.index, smokeData.name, Data.type.BARRIER, true, cycleGeometryData, physicalData, SmokeData.SmokeType.FIRE, new Color(0, 0, 0)); addObject(smokeData); break; } } break; } } } }
//file public void save(string path) { FileStream fs = new FileStream(path, FileMode.Create); StreamWriter sw = new StreamWriter(fs); string line = ""; //write configuration line = "configuration" + "-" + "number=" + number.ToString(); sw.Write(line); sw.Write("\n"); //write data foreach (var item in data) { line = "data" + "-"; line = line + "index=" + item.Key + "-"; line = line + "name=" + item.Value.name + "-"; line = line + "type=" + item.Value.dataTypeToString(item.Value.dataType) + "-"; line = line + "deletable=" + item.Value.deletable.ToString() + "-"; switch (item.Value.dataType) { case Data.type.GROUND: { GroundData groundData = ((GroundData)item.Value); line = line + "size=" + groundData.size; break; } case Data.type.LIGHT: { LightData lightData = ((LightData)item.Value); line = line + "intensity=" + lightData.intensity.ToString() + "-"; line = line + "color:R=" + lightData.color.r.ToString() + ":G=" + lightData.color.g.ToString() + ":B=" + lightData.color.b.ToString(); break; } case Data.type.LOGDENSITY: { LogSmokeDensityData logSmokeDensityData = ((LogSmokeDensityData)item.Value); line = line + "logFlag=" + logSmokeDensityData.logFlag.ToString() + "-"; line = line + "interval=" + logSmokeDensityData.interval.ToString(); break; } case Data.type.BARRIER: { BarrierData barrierData = ((BarrierData)item.Value); line = line + "geometryType=" + barrierData.geometryData.getGeometryTypeStringArray()[(int)barrierData.geometryData.geometryType] + "-"; line = line + "position=" + barrierData.geometryData.position.ToString() + "-"; switch (barrierData.geometryData.geometryType) { case GeometryData.GeometryType.CUBE: { line = line + "size=" + ((CubeGeometryData)barrierData.geometryData).size.ToString() + "-"; line = line + "direction=" + ((CubeGeometryData)barrierData.geometryData).direction.ToString(); break; } case GeometryData.GeometryType.SPHERE: { line = line + "r=" + ((SphereGeometryData)barrierData.geometryData).r.ToString(); break; } case GeometryData.GeometryType.CYLINDER: { line = line + "r=" + ((CylinderGeometryData)barrierData.geometryData).r.ToString() + "-"; line = line + "height=" + ((CylinderGeometryData)barrierData.geometryData).height.ToString() + "-"; line = line + "direction=" + ((CylinderGeometryData)barrierData.geometryData).direction.ToString(); break; } } break; } case Data.type.WIND: { WindData windData = ((WindData)item.Value); line = line + "intensity=" + windData.intensity.ToString() + "-"; line = line + "interference=" + windData.interference.ToString() + "-"; line = line + "geometryType=" + windData.geometryData.getGeometryTypeStringArray()[(int)windData.geometryData.geometryType] + "-"; line = line + "position=" + windData.geometryData.position.ToString() + "-"; switch (windData.geometryData.geometryType) { case GeometryData.GeometryType.CUBE: { line = line + "size=" + ((CubeGeometryData)windData.geometryData).size.ToString() + "-"; line = line + "direction=" + ((CubeGeometryData)windData.geometryData).direction.ToString(); break; } case GeometryData.GeometryType.SPHERE: { line = line + "r=" + ((SphereGeometryData)windData.geometryData).r.ToString(); break; } case GeometryData.GeometryType.CYLINDER: { line = line + "r=" + ((CylinderGeometryData)windData.geometryData).r.ToString() + "-"; line = line + "height=" + ((CylinderGeometryData)windData.geometryData).height.ToString(); break; } } break; } case Data.type.SMOKE: { SmokeData smokeData = ((SmokeData)item.Value); switch (smokeData.smokeType) { case SmokeData.SmokeType.SMOKE: { line = line + "smokeType=smoke-"; line = line + "duration=" + smokeData.physicalData.duration.ToString() + "-"; line = line + "maxNumber=" + smokeData.physicalData.maxNumber.ToString() + "-"; line = line + "particleSize=" + smokeData.physicalData.particleSize.ToString() + "-"; line = line + "speed=" + smokeData.physicalData.speed.ToString() + "-"; line = line + "color:R=" + smokeData.color.r.ToString() + ":G=" + smokeData.color.g.ToString() + ":B=" + smokeData.color.b.ToString() + "-"; line = line + "geometryType=" + smokeData.geometryData.getGeometryTypeStringArray()[(int)smokeData.geometryData.geometryType] + "-"; line = line + "position=" + smokeData.geometryData.position.ToString() + "-"; switch (smokeData.geometryData.geometryType) { case GeometryData.GeometryType.CYCLE: { line = line + "r=" + ((CycleGeometryData)smokeData.geometryData).r.ToString() + "-"; line = line + "direction=" + ((CycleGeometryData)smokeData.geometryData).direction.ToString(); break; } case GeometryData.GeometryType.CONE: { line = line + "r=" + ((ConeGeometryData)smokeData.geometryData).r.ToString() + "-"; line = line + "height=" + ((ConeGeometryData)smokeData.geometryData).height.ToString() + "-"; line = line + "direction=" + ((ConeGeometryData)smokeData.geometryData).direction.ToString(); break; } } break; } case SmokeData.SmokeType.FIRE: { line = line + "smokeType=fire-"; break; } case SmokeData.SmokeType.EXPLOSION: { line = line + "smokeType=explosion-"; break; } } break; } default: { break; } } sw.Write(line); sw.Write("\n"); } sw.Flush(); sw.Close(); fs.Close(); }
public void toAddConfiguration(Data.type type) { // Debug.Log(type); Data objectData = null; switch (type) { case Data.type.BARRIER: { number = number + 1; CubeGeometryData cubeGeometryData = new CubeGeometryData( new Vector3(0f, 0.5f, 0f), new Vector3(0.2f, 0.2f, 0.2f), new Vector3(0f, 0f, 0f) ); // Debug.Log(number); objectData = new BarrierData(number, "Barrier" + number.ToString(), Data.type.BARRIER, true, cubeGeometryData); break; } case Data.type.WIND: { number = number + 1; CubeGeometryData cubeGeometryData = new CubeGeometryData( new Vector3(0f, 0.5f, 0f), new Vector3(0.2f, 0.2f, 0.2f), new Vector3(0f, 0f, 0f) ); // Debug.Log(number); objectData = new WindData(number, "Wind" + number.ToString(), Data.type.WIND, true, cubeGeometryData, 1f, 0f); break; } case Data.type.SMOKE: { number = number + 1; CycleGeometryData cycleGeometryData = new CycleGeometryData( new Vector3(0f, 0.5f, 0f), 0.1f, new Vector3(0f, 0f, 0f) ); PhysicalData physicalData = new PhysicalData( 0.01f, 10.0f, 1000, 3f ); objectData = new SmokeData(number, "Smoke" + number.ToString(), Data.type.SMOKE, true, cycleGeometryData, physicalData, SmokeData.SmokeType.SMOKE, new Color(0, 0, 0)); break; } default: { string logString = "[Error] the " + new Data().dataTypeToString(type) + " object can't be added"; addLog(logString); break; } } if (objectData != null) { // Debug.Log(objectData.dataType); ObjectConfigurationPanel.GetComponent <ObjectConfigurationPanelController>().showConfigurePanel(objectData, ObjectConfigurationPanelController.ConfigurationMode.ADD); } }
public override void set(string key, string value) { // Debug.Log(key); // Debug.Log(value); try { if (value != "") { switch (key) { case "geometry": { if (value == "cube") { CubeGeometryData cubeGeometryData = new CubeGeometryData( new Vector3(0f, 0.5f, 0f), new Vector3(0.2f, 0.2f, 0.2f), new Vector3(0f, 0f, 0f) ); BarrierData newBarrierData = new BarrierData(barrierData.index, barrierData.name, Data.type.BARRIER, true, cubeGeometryData); init(newBarrierData); } else if (value == "sphere") { SphereGeometryData sphereGeometryData = new SphereGeometryData( new Vector3(0f, 0.5f, 0f), 0.2f ); BarrierData newBarrierData = new BarrierData(barrierData.index, barrierData.name, Data.type.BARRIER, true, sphereGeometryData); init(newBarrierData); } else if (value == "cylinder") { CylinderGeometryData cylinderGeometryData = new CylinderGeometryData( new Vector3(0f, 3f, 0f), 0.2f, 0.4f, new Vector3(0f, 0f, 0f) ); BarrierData newBarrierData = new BarrierData(barrierData.index, barrierData.name, Data.type.BARRIER, true, cylinderGeometryData); init(newBarrierData); } break; } //key1 { "p_x", "p_y", "p_z" } case "p_x": { Vector3 position = new Vector3(float.Parse(value), barrierData.geometryData.position.y, barrierData.geometryData.position.z); barrierData.geometryData.position = position; break; } case "p_y": { Vector3 position = new Vector3(barrierData.geometryData.position.x, float.Parse(value), barrierData.geometryData.position.z); barrierData.geometryData.position = position; break; } case "p_z": { Vector3 position = new Vector3(barrierData.geometryData.position.x, barrierData.geometryData.position.y, float.Parse(value)); barrierData.geometryData.position = position; break; } //key2 s_r case "s_r": { ((SphereGeometryData)barrierData.geometryData).r = float.Parse(value); break; } //key3 { "c_r", "c_h" } case "c_r": { ((CylinderGeometryData)barrierData.geometryData).r = float.Parse(value); break; } case "c_h": { ((CylinderGeometryData)barrierData.geometryData).height = float.Parse(value); break; } //key4 { "length", "width", "height" } case "length": { ((CubeGeometryData)barrierData.geometryData).size.x = float.Parse(value); break; } case "width": { ((CubeGeometryData)barrierData.geometryData).size.z = float.Parse(value); break; } case "height": { ((CubeGeometryData)barrierData.geometryData).size.y = float.Parse(value); break; } //key5 { "cy_x", "cy_y", "cy_z" } case "cy_x": { ((CylinderGeometryData)barrierData.geometryData).direction.x = float.Parse(value); break; } case "cy_y": { ((CylinderGeometryData)barrierData.geometryData).direction.y = float.Parse(value); break; } case "cy_z": { ((CylinderGeometryData)barrierData.geometryData).direction.z = float.Parse(value); break; } //key5 { "cu_x", "cu_y", "cu_z" } case "cu_x": { ((CubeGeometryData)barrierData.geometryData).direction.x = float.Parse(value); break; } case "cu_y": { ((CubeGeometryData)barrierData.geometryData).direction.y = float.Parse(value); break; } case "cu_z": { ((CubeGeometryData)barrierData.geometryData).direction.y = float.Parse(value); break; } default: { break; } } } } catch (System.Exception) { } }
public void init(BarrierData _barrierData) { barrierData = _barrierData; geometrySetLine = transform.GetChild(0).gameObject; bool[] value0 = { false, false, false }; value0[(int)_barrierData.geometryData.geometryType] = true; geometrySetLine.GetComponent <ThreeTypeChooseLineController>().init("geometry", _barrierData.geometryData.getGeometryTypeStringArray(), value0); string[] key1 = { "p_x", "p_y", "p_z" }; string[] value1 = { barrierData.geometryData.position.x.ToString(), barrierData.geometryData.position.y.ToString(), barrierData.geometryData.position.z.ToString() }; positionSetLine = transform.GetChild(1).gameObject; positionSetLine.GetComponent <ThreeValueSetLineController>().init(key1, value1); sphereSetLine = transform.GetChild(2).gameObject; cylinderSetLine = transform.GetChild(3).gameObject; cubeSetLine = transform.GetChild(4).gameObject; sphereSetLine.SetActive(false); cylinderSetLine.SetActive(false); cubeSetLine.SetActive(false); directionSetLine = transform.GetChild(5).gameObject; string[] key5 = new string[3]; string[] value5 = new string[3]; switch (_barrierData.geometryData.geometryType) { case GeometryData.GeometryType.SPHERE: directionSetLine.SetActive(false); sphereSetLine.SetActive(true); sphereSetLine.GetComponent <OneValueSetLineController>().init("s_r", ((SphereGeometryData)_barrierData.geometryData).r.ToString()); break; case GeometryData.GeometryType.CYLINDER: directionSetLine.SetActive(true); key5[0] = "cy_x"; key5[1] = "cy_y"; key5[2] = "cy_z"; value5[0] = ((CylinderGeometryData)_barrierData.geometryData).direction.x.ToString(); value5[1] = ((CylinderGeometryData)_barrierData.geometryData).direction.y.ToString(); value5[2] = ((CylinderGeometryData)_barrierData.geometryData).direction.z.ToString(); directionSetLine.GetComponent <ThreeValueSetLineController>().init(key5, value5); cylinderSetLine.SetActive(true); string[] key3 = { "c_r", "c_h" }; string[] value3 = { ((CylinderGeometryData)_barrierData.geometryData).r.ToString(), ((CylinderGeometryData)_barrierData.geometryData).height.ToString() }; cylinderSetLine.GetComponent <TwoValueSetLineController>().init(key3, value3); break; case GeometryData.GeometryType.CUBE: cubeSetLine.SetActive(true); string[] key4 = { "length", "width", "height" }; string[] value4 = { ((CubeGeometryData)_barrierData.geometryData).size.x.ToString(), ((CubeGeometryData)_barrierData.geometryData).size.y.ToString(), ((CubeGeometryData)_barrierData.geometryData).size.z.ToString() }; cubeSetLine.GetComponent <ThreeValueSetLineController>().init(key4, value4); key5[0] = "cu_x"; key5[1] = "cu_y"; key5[2] = "cu_z"; directionSetLine.SetActive(true); value5[0] = ((CubeGeometryData)_barrierData.geometryData).direction.x.ToString(); value5[1] = ((CubeGeometryData)_barrierData.geometryData).direction.y.ToString(); value5[2] = ((CubeGeometryData)_barrierData.geometryData).direction.z.ToString(); directionSetLine.GetComponent <ThreeValueSetLineController>().init(key5, value5); break; default: break; } }