void Start() { Deactivate(); defaultScale = transform.localScale; bounds = GetComponent <Collider2D>().bounds; type = transform.localRotation.eulerAngles.z == 0 ? BlockerType.Horizontal : BlockerType.Vertical; }
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(); }
/// <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(); } }