/** * @brief 생성자, Planet의 Terrain, Clouds 생성정보를 기록 * @param info : planet info, tfTerrain : 지형 오브젝트, tfClouds : 구름 오브젝트 */ public SavePlanet(VoxelPlanetInfo info, Transform tfTerrain, Transform tfClouds) { if (info == null) { return; } this.name = info.name; this.isSphere = info.isSphere; if (tfTerrain != null) { this.terrainInfo = info.terrainInfo; } if (tfClouds != null) { this.cloudsInfo = info.cloudInfo; } modifyList = info.modifyList; if (info.modifyAreaObject.Count != 0) { areaObjPath = new List <string>(); foreach (KeyValuePair <string, GameObject> pair in info.modifyAreaObject) { areaObjPath.Add(pair.Key); } } }
/** * @function ModifyArea(변경 정보) * @brief 지정된 영역의 블럭 정보를 변경한다. */ public void ModifyArea(ModifyArea areaInfo) { var voxelPlanet = VoxelPlanetInfo.GetVoxelPlanet(); if (voxelPlanet == null) { return; } ModifyChunk(voxelPlanet.transform.Find("Terrain"), areaInfo); ModifyChunk(voxelPlanet.transform.Find("Clouds"), areaInfo); }
/** * @function InitVoxelPlanet(초기화 할 이름) * @brief 행성을 초기화한다. */ public GameObject InitVoxelPlanet(string planetName) { var voxelPlanet = VoxelPlanetInfo.GetVoxelPlanet(); if (voxelPlanet == null) { voxelPlanet = CreateVoxelPlanet(planetName); } else { voxelPlanet.name = planetName; } return(voxelPlanet); }
/** * @brief Planet 정보 저장 */ public void SavePlanet() { var planet = VoxelPlanetInfo.GetVoxelPlanet(); if (planet == null) { return; } //공용 다이얼로그 호출 string path = EditorUtility.SaveFilePanel("Save Planet as planet", "Assets/MapData", planet.name, "planet"); if (path.Length == 0) { return; } if (planet != null) { Serialization.SaveVoxelPlanet(planet, path); } }
/** * @brief Planet Object 구면화 */ public void ConvertToPlanet() { var voxelPlanet = VoxelPlanetInfo.GetVoxelPlanet(); if (voxelPlanet == null) { return; } var planetInfo = voxelPlanet.GetComponent <VoxelPlanetInfo>(); planetInfo.isSphere = !planetInfo.isSphere; if (voxelPlanet.transform.Find("Terrain")) { GenerateTerrain(voxelPlanet); } if (voxelPlanet.transform.Find("Clouds")) { GenerateClouds(voxelPlanet); } ConvertToObject(planetInfo.isSphere); }