Exemple #1
0
        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;
            }
        }
Exemple #2
0
        /// <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();
        }