예제 #1
0
        /// <summary>
        /// Заполняет активную сцену в соответвии с описанием.
        /// </summary>
        /// <param name="levelUnitPositions">Описание положения юнитов.</param>
        private static void FillScene(LevelUnitPositions levelUnitPositions)
        {
            foreach (var unitPositionModel in levelUnitPositions.UnitPositionModels)
            {
#if UNITY_EDITOR
                if (!Application.isPlaying)
                {
                    var unit = (GameObject)PrefabUtility.InstantiatePrefab(unitPositionModel.GameObject);
                    unit.transform.position = unitPositionModel.Position;
                    unit.transform.rotation = unitPositionModel.Rotation;
                }
                else
                {
                    ObjectsPoolsManager.Instance.SpawnFromPool(
                        ((GameObject)unitPositionModel.GameObject).GetComponent <Unit>().Sid,
                        unitPositionModel.Position,
                        unitPositionModel.Rotation);
                }
#else
                ObjectsPoolsManager.Instance.SpawnFromPool(
                    ((GameObject)unitPositionModel.GameObject).GetComponent <Unit>().Sid,
                    unitPositionModel.Position, unitPositionModel.Rotation);
#endif
            }
        }
예제 #2
0
        private void OnGUI()
        {
            _levelNameText = EditorUtils.ShowLine("New Level Name", _levelNameText);
            if (GUILayout.Button("Create Level"))
            {
                CreateLevel();
            }

            _levelUnitPositions = EditorUtils.ShowLine("Level Asset", _levelUnitPositions);
            if (GUILayout.Button("Load Level"))
            {
                LoadLevel();
            }

            if (GUILayout.Button("Clear Current Level"))
            {
                Clear();
            }

            GUILayout.Space(10);

            if (GUILayout.Button("Edit Current Level"))
            {
                EditLevel();
            }
        }
예제 #3
0
        /// <summary>
        /// Загружает указанный уровень.
        /// </summary>
        /// <param name="levelUnitPositions">Описание уровня.</param>
        public static void LoadScene(LevelUnitPositions levelUnitPositions)
        {
            SceneManager.GetActiveScene();

            ClearScene();

            FillScene(levelUnitPositions);
        }