102 lines
2.8 KiB
C#
102 lines
2.8 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
using UnityEngine.InputSystem;
|
|
|
|
//[CustomEditor(typeof(GameManager))]
|
|
public class GameManagerEditor : UnityEditor.Editor
|
|
{
|
|
|
|
private GameManager gameManager;
|
|
|
|
//Game Mode
|
|
private SerializedProperty currentGameModeProperty;
|
|
|
|
//Single Player
|
|
private SerializedProperty inScenePlayerProperty;
|
|
private SerializedProperty singlePlayerCameraModeProperty;
|
|
|
|
//Local Multiplayer
|
|
private SerializedProperty playerPrefabProperty;
|
|
private SerializedProperty numberOfPlayersProperty;
|
|
private SerializedProperty spawnRingCenterProperty;
|
|
private SerializedProperty spawnRingRadiusProperty;
|
|
|
|
void OnEnable()
|
|
{
|
|
|
|
//Game Mode
|
|
currentGameModeProperty = serializedObject.FindProperty("currentGameMode");
|
|
|
|
//Single Player
|
|
inScenePlayerProperty = serializedObject.FindProperty("inScenePlayer");
|
|
singlePlayerCameraModeProperty = serializedObject.FindProperty("singlePlayerCameraMode");
|
|
|
|
//Local Multiplayer
|
|
playerPrefabProperty = serializedObject.FindProperty("playerPrefab");
|
|
numberOfPlayersProperty = serializedObject.FindProperty("numberOfPlayers");
|
|
spawnRingCenterProperty = serializedObject.FindProperty("spawnRingCenter");
|
|
spawnRingRadiusProperty = serializedObject.FindProperty("spawnRingRadius");
|
|
|
|
}
|
|
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
|
|
gameManager = (GameManager)target;
|
|
|
|
serializedObject.Update();
|
|
|
|
DrawGameModeGUI();
|
|
|
|
DrawSpaceGUI(3);
|
|
|
|
EditorGUILayout.LabelField("Initialization Mode Settings", EditorStyles.boldLabel);
|
|
|
|
if(gameManager.currentGameMode == GameMode.SinglePlayer)
|
|
{
|
|
DrawSinglePlayerGUI();
|
|
}
|
|
|
|
if(gameManager.currentGameMode == GameMode.LocalMultiplayer)
|
|
{
|
|
DrawLocalMultiplayerGUI();
|
|
}
|
|
|
|
serializedObject.ApplyModifiedProperties();
|
|
}
|
|
|
|
void DrawGameModeGUI()
|
|
{
|
|
EditorGUILayout.LabelField("Game Mode", EditorStyles.boldLabel);
|
|
EditorGUILayout.PropertyField(currentGameModeProperty);
|
|
}
|
|
|
|
void DrawSinglePlayerGUI()
|
|
{
|
|
EditorGUILayout.PropertyField(inScenePlayerProperty);
|
|
EditorGUILayout.PropertyField(singlePlayerCameraModeProperty);
|
|
}
|
|
|
|
void DrawLocalMultiplayerGUI()
|
|
{
|
|
|
|
EditorGUILayout.PropertyField(playerPrefabProperty);
|
|
|
|
EditorGUILayout.PropertyField(numberOfPlayersProperty);
|
|
|
|
EditorGUILayout.PropertyField(spawnRingCenterProperty);
|
|
EditorGUILayout.PropertyField(spawnRingRadiusProperty);
|
|
}
|
|
|
|
void DrawSpaceGUI(int amountOfSpace)
|
|
{
|
|
for(int i = 0; i < amountOfSpace; i++)
|
|
{
|
|
EditorGUILayout.Space();
|
|
}
|
|
}
|
|
}
|