public void CreateGamePiece(LevelData.PlaceableType type, int x, int y, int teamId) { Debug.Log(type.ToString() + ", " + x + ", " + y + ", " + teamId); switch (type) { case LevelData.PlaceableType.Bishop: case LevelData.PlaceableType.King: case LevelData.PlaceableType.Knight: case LevelData.PlaceableType.Pawn: case LevelData.PlaceableType.Queen: case LevelData.PlaceableType.Rook: CreateGamePiece("GamePiece" + type.ToString(), x, y, teamId); break; } }
private void OnGUI() { if (m_reorderableLevelList == null) { return; } GUILayout.BeginHorizontal(); sidebarScrollPosition = EditorGUILayout.BeginScrollView(sidebarScrollPosition, false, true, GUILayout.Width(235)); EditorGUILayout.BeginVertical(); if (GUILayout.Button("Save")) { int numLevels = m_reorderableLevelList.list.Count; for (int i = 0; i < numLevels; i++) { LevelData levelData = (LevelData)m_reorderableLevelList.list[i]; string assetPath = AssetDatabase.GetAssetPath(levelData); if (assetPath != "") { AssetDatabase.RenameAsset(assetPath, i.ToString()); } } for (int i = 0; i < numLevels; i++) { string path = "Assets/Resources/Levels/Level" + (i + 1).ToString() + ".asset"; LevelData levelData = (LevelData)m_reorderableLevelList.list[i]; string assetPath = AssetDatabase.GetAssetPath(levelData); if (assetPath == "") { AssetDatabase.CreateAsset(levelData, path); } else { AssetDatabase.RenameAsset(assetPath, "Level" + (i + 1).ToString()); } } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } m_reorderableLevelList.DoLayoutList(); EditorGUILayout.EndVertical(); GUILayout.EndScrollView(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); if (m_currentLevelData != null) { GUILayout.BeginVertical(); m_currentPlaceableType = (LevelData.PlaceableType)EditorGUILayout.EnumPopup("Placeable", m_currentPlaceableType); m_currentTeamIndex = EditorGUILayout.IntField("Team Index", m_currentTeamIndex); m_currentLevelData.m_gridWidth = EditorGUILayout.IntField("Grid Width", m_currentLevelData.m_gridWidth); m_currentLevelData.m_gridHeight = EditorGUILayout.IntField("Grid Height", m_currentLevelData.m_gridHeight); m_zoomSlider = EditorGUILayout.Slider("Zoom", m_zoomSlider, 0.1f, 1.0f); GUILayout.EndVertical(); } GUILayout.EndHorizontal(); levelAreaScrollPosition = EditorGUILayout.BeginScrollView(levelAreaScrollPosition, true, true); if (m_currentLevelData != null) { for (int y = 0; y < m_currentLevelData.m_gridHeight; y++) { GUILayout.BeginHorizontal(); for (int x = 0; x < m_currentLevelData.m_gridWidth; x++) { Texture texture = null; GUI.backgroundColor = (y + x) % 2 == 0?Color.grey:Color.white; GUI.contentColor = Color.white; LevelData.Placement placement = m_currentLevelData.GetPlacement(x, y); if (placement != null) { switch (placement.type) { case LevelData.PlaceableType.EmptyCell: GUI.backgroundColor = Color.clear; break; case LevelData.PlaceableType.Pawn: texture = m_pawnTexture; break; case LevelData.PlaceableType.Bishop: texture = m_bishopTexture; break; case LevelData.PlaceableType.Knight: texture = m_knightTexture; break; case LevelData.PlaceableType.Rook: texture = m_rookTexture; break; case LevelData.PlaceableType.Queen: texture = m_queenTexture; break; case LevelData.PlaceableType.King: texture = m_kingTexture; break; } if (placement.team != 0) { GUI.contentColor = Color.black; } } if (GUILayout.Button(texture, new GUILayoutOption[] { GUILayout.Width(50 * m_zoomSlider), GUILayout.Height(50 * m_zoomSlider) })) { //paint switch (m_currentPlaceableType) { case LevelData.PlaceableType.DefaultCell: m_currentLevelData.RemovePlacement(x, y); break; default: m_currentLevelData.SetPlacement(m_currentPlaceableType, x, y, m_currentTeamIndex); break; } EditorUtility.SetDirty(m_currentLevelData); } //GUILayout.Box(texture, new GUILayoutOption[]{GUILayout.Width(50 * m_zoomSlider), GUILayout.Height(50 * m_zoomSlider)}); } GUILayout.EndHorizontal(); } } GUILayout.EndScrollView(); GUILayout.EndVertical(); GUILayout.EndHorizontal(); }