private void _InitData(SceneLevelData levelData) { this.chunkWidth = levelData.ChunkWidth; this.chunkHeight = levelData.ChunkHeight; this.chunkColumns = levelData.ChunkColumns; this.chunkRows = levelData.ChunkRows; this.chunks = new SceneChunk[this.chunkColumns * this.chunkRows]; for (var i = 0; i < levelData.Chunks.Count; ++i) { var chunkRefData = levelData.Chunks[i]; var x = chunkRefData.PositionX / this.chunkWidth; var z = chunkRefData.PositionZ / this.chunkHeight; var index = Mathf.FloorToInt(z * this.chunkColumns + x); var go = new GameObject("_Chunk"); go.transform.SetParent(this.levelRoot.transform); var chunk = new SceneChunk(index, chunkRefData, go, this.validateData); this.chunks[index] = chunk; } if (SceneLevel.IsInEdit()) { var levelObject = SceneLevel.GetOrAddComponent <LevelObject>(this.levelRoot); levelObject.Path = this.levelPath; levelObject.ChunkWidth = this.chunkWidth; levelObject.ChunkHeight = this.chunkHeight; levelObject.ChunkColumns = this.chunkColumns; levelObject.ChunkRows = this.chunkRows; } }
/// <summary> /// /// </summary> public void Load() { Clear(); var chunk = new SceneChunk(0, new SceneChunkRefData { PositionX = this.transform.localPosition.x, PositionY = this.transform.localPosition.y, PositionZ = this.transform.localPosition.z, OrientationX = this.transform.localRotation.x, OrientationY = this.transform.localRotation.y, OrientationZ = this.transform.localRotation.z, OrientationW = this.transform.localRotation.w, Path = this.Path, }, this.gameObject, true); chunk.Load(); }