Exemple #1
0
 void Start()
 {
     Deactivate();
     defaultScale = transform.localScale;
     bounds       = GetComponent <Collider2D>().bounds;
     type         = transform.localRotation.eulerAngles.z == 0 ? BlockerType.Horizontal : BlockerType.Vertical;
 }
Exemple #2
0
        public override void Draw()
        {
            GUILayout.BeginVertical();

            GUILayout.BeginHorizontal();
            EditorGUILayout.PrefixLabel("Type");
            blockerType = (BlockerType)EditorGUILayout.EnumPopup(blockerType, GUILayout.Width(100));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            EditorGUILayout.PrefixLabel("Amount");
            amount = EditorGUILayout.IntField(amount, GUILayout.Width(30));
            GUILayout.EndHorizontal();

            GUILayout.EndVertical();
        }
Exemple #3
0
        /// <summary>
        /// 레벨 편집기 그리기.
        /// </summary>
        private void DrawLevelEditor()
        {
            EditorGUILayout.LabelField("Level", EditorStyles.boldLabel);
            GUILayout.BeginHorizontal(GUILayout.Width(400));
            EditorGUILayout.HelpBox(
                "The layout settings of this level. (이 레벨의 레이아웃 설정)",
                MessageType.Info);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(new GUIContent("Width", "The width of this level. (이 레벨의 너비)"),
                                       GUILayout.Width(EditorGUIUtility.labelWidth));
            curLevel.width = EditorGUILayout.IntField(curLevel.width, GUILayout.Width(30));
            GUILayout.EndHorizontal();

            height = curLevel.height;

            GUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(new GUIContent("Height", "The height of this level. (이 레벨의 높이)"),
                                       GUILayout.Width(EditorGUIUtility.labelWidth));
            curLevel.height = EditorGUILayout.IntField(curLevel.height, GUILayout.Width(30));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(new GUIContent("Brush type", "The current type of brush. (현재 브러시 유형)"),
                                       GUILayout.Width(EditorGUIUtility.labelWidth));
            curBrushType = (BrushType)EditorGUILayout.EnumPopup(curBrushType, GUILayout.Width(100));
            GUILayout.EndHorizontal();

            if (curBrushType == BrushType.block)
            {
                GUILayout.BeginHorizontal();
                EditorGUILayout.LabelField(new GUIContent("Block", "The current type of block.  (블록의 현재 유형)"),
                                           GUILayout.Width(EditorGUIUtility.labelWidth));
                curBlockType = (BlockType)EditorGUILayout.EnumPopup(curBlockType, GUILayout.Width(100));
                GUILayout.EndHorizontal();
            }
            else if (curBrushType == BrushType.blocker)
            {
                GUILayout.BeginHorizontal();
                EditorGUILayout.LabelField(new GUIContent("Blocker", "The current type of blocker.  (현재 차단기 유형)"),
                                           GUILayout.Width(EditorGUIUtility.labelWidth));
                curBlockerType =
                    (BlockerType)EditorGUILayout.EnumPopup(curBlockerType, GUILayout.Width(100));
                GUILayout.EndHorizontal();
            }
            else if (curBrushType == BrushType.booster)
            {
                GUILayout.BeginHorizontal();
                EditorGUILayout.LabelField(new GUIContent("Booster", "The current type of booster."),
                                           GUILayout.Width(EditorGUIUtility.labelWidth));
                curBoosterType =
                    (BoosterType)EditorGUILayout.EnumPopup(curBoosterType, GUILayout.Width(100));
                GUILayout.EndHorizontal();

                if (curBoosterType == BoosterType.rainbow)
                {
                    GUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField(new GUIContent("RainbowColor", "The current type of booster."),
                                               GUILayout.Width(EditorGUIUtility.labelWidth));
                    curColorType =
                        (ColorType)EditorGUILayout.EnumPopup(curColorType, GUILayout.Width(100));
                    GUILayout.EndHorizontal();
                }
            }

            GUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(new GUIContent("Brush mode", "The current brush mode.    (현재 브러시 모드)"),
                                       GUILayout.Width(EditorGUIUtility.labelWidth));
            curBrushMode = (BrushMode)EditorGUILayout.EnumPopup(curBrushMode, GUILayout.Width(100));
            GUILayout.EndHorizontal();

            GUILayout.Space(10);

            if (width != curLevel.width || height != curLevel.height)
            {
                curLevel.blocks = new List <LevelBlock>(curLevel.width * curLevel.height);
                for (var i = 0; i < curLevel.width; i++)
                {
                    for (var j = 0; j < curLevel.height; j++)
                    {
                        curLevel.blocks.Add(new LevelBlockType()
                        {
                            type = BlockType.random
                        });
                    }
                }
            }

            //for (var i = 0; i < height; i++)
            //{
            //    GUILayout.BeginHorizontal();
            //    for (var j = 0; j < width; j++)
            //    {
            //        var tileIndex = (width * i) + j;
            //        CreateButton(tileIndex);
            //    }
            //    GUILayout.EndHorizontal();
            //}

            int gap = curLevel.width - curLevel.height;

            for (int i = curLevel.height - 1; i >= 0; --i)
            {
                GUILayout.BeginHorizontal();
                for (int j = 0; j < curLevel.width; j++)
                {
                    int tileIndex = 0;
                    if (curLevel.id <= 126)
                    {
                        tileIndex = (curLevel.width * j) + i;                     // 버그... 이전에 만든건 다틀어져서 냅둠...
                    }
                    else
                    {
                        tileIndex = ((curLevel.width - gap) * j) + i;
                    }
                    CreateButton(tileIndex);
                }
                GUILayout.EndHorizontal();
            }
        }