Files
Robii Aragon fd87a6ffd5 add ckg
plantilla base para movimiento básico
2026-02-05 05:07:55 -08:00

1084 lines
38 KiB
C#

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
#if UNITY_EDITOR
using UnityEditor;
[CustomEditor (typeof(mapSystem))]
public class mapSystemEditor : Editor
{
SerializedProperty mapEnabled;
SerializedProperty openMenuEnabled;
SerializedProperty changeFloorWithTriggers;
SerializedProperty showWarningMessages;
SerializedProperty updateMapIconTypesOnStart;
SerializedProperty currentBuildingName;
SerializedProperty currentBuildingIndex;
SerializedProperty currentFloorIndex;
SerializedProperty currentFloorNumber;
SerializedProperty currentMapPartIndex;
SerializedProperty mapCreatorManager;
SerializedProperty showMapComponents;
SerializedProperty showMapSettings;
SerializedProperty showCompassComponents;
SerializedProperty showCompassSettings;
SerializedProperty showMapFloorAndIcons;
SerializedProperty showMarkSettings;
SerializedProperty mapCamera;
SerializedProperty mapSystemPivotTransform;
SerializedProperty mapSystemCameraTransform;
SerializedProperty player;
SerializedProperty mapRender;
SerializedProperty mapWindow;
SerializedProperty playerMapIcon;
SerializedProperty playerIconChild;
SerializedProperty removeMarkButtonImage;
SerializedProperty quickTravelButtonImage;
SerializedProperty useMapIndexWindow;
SerializedProperty mapObjectTextIcon;
SerializedProperty useBlurUIPanel;
SerializedProperty playerInput;
SerializedProperty pauseManager;
SerializedProperty screenObjectivesManager;
SerializedProperty playerControllerManager;
SerializedProperty playerMapObjectInformation;
SerializedProperty mainMapCamera;
SerializedProperty mapCreatorPrefab;
SerializedProperty playerIconMovementSpeed;
SerializedProperty openMapSpeed;
SerializedProperty mouseDragMapSpeed;
SerializedProperty keysDragMapSpeed;
SerializedProperty getClosestFloorToPlayerByDistance;
SerializedProperty mapCameraMovementType;
SerializedProperty recenterCameraSpeed;
SerializedProperty rotateMap;
SerializedProperty smoothRotationMap;
SerializedProperty rotationSpeed;
SerializedProperty usingCircleMap;
SerializedProperty circleMapRadius;
SerializedProperty showOffScreenIcons;
SerializedProperty iconSize;
SerializedProperty maxIconSize;
SerializedProperty offScreenIconSize;
SerializedProperty openMapIconSizeMultiplier;
SerializedProperty changeIconSizeSpeed;
SerializedProperty showIconsByFloor;
SerializedProperty borderOffScreen;
SerializedProperty useTextInIcons;
SerializedProperty textIconsOffset;
SerializedProperty mapObjectTextIconColor;
SerializedProperty mapObjectTextSize;
SerializedProperty miniMapWindowEnabledInGame;
SerializedProperty miniMapWindowSmoothOpening;
SerializedProperty miniMapWindowWithMask;
SerializedProperty playerUseMapObjectInformation;
SerializedProperty playerIconOffset;
SerializedProperty useCurrentMapIconPressed;
SerializedProperty useMapCursor;
SerializedProperty showInfoIconInsideCursor;
SerializedProperty maxDistanceToMapIcon;
SerializedProperty zoomWhenOpen;
SerializedProperty zoomWhenClose;
SerializedProperty openCloseZoomSpeed;
SerializedProperty zoomSpeed;
SerializedProperty maxZoom;
SerializedProperty minZoom;
SerializedProperty zoomToActivateIcons;
SerializedProperty zoomToActivateTextIcons;
SerializedProperty zoomWhenOpen3d;
SerializedProperty zoomWhenClose3d;
SerializedProperty openCloseZoomSpeed3d;
SerializedProperty zoomSpeed3d;
SerializedProperty maxZoom3d;
SerializedProperty minZoom3d;
SerializedProperty zoomToActivateIcons3d;
SerializedProperty zoomToActivateTextIcons3d;
SerializedProperty setColorOnCurrent3dMapPart;
SerializedProperty colorOnCurrent3dMapPart;
SerializedProperty disabledRemoveMarkColor;
SerializedProperty disabledQuickTravelColor;
SerializedProperty map3dEnabled;
SerializedProperty map3dPositionSpeed;
SerializedProperty map3dRotationSpeed;
SerializedProperty rangeAngleX;
SerializedProperty rangeAngleY;
SerializedProperty transtionTo3dSpeed;
SerializedProperty maxTimeBetweenTransition;
SerializedProperty reset3dCameraSpeed;
SerializedProperty inital3dCameraRotation;
SerializedProperty hideOffscreenIconsOn3dView;
SerializedProperty showIconsOn3dView;
SerializedProperty use3dMeshForPlayer;
SerializedProperty player3dMesh;
SerializedProperty useEventIfMapEnabled;
SerializedProperty eventIfMapEnabled;
SerializedProperty useEventIfMapDisabled;
SerializedProperty eventIfMapDisabled;
SerializedProperty markPrefab;
SerializedProperty setMarkOnCurrenBuilding;
SerializedProperty setMarkOnCurrentFloor;
SerializedProperty layerMaskToPlaceMark;
SerializedProperty useRaycastToPlaceMarkOn2dMap;
SerializedProperty useMapCameraAsRaycastPoisitionOn2dMap;
SerializedProperty raycastDistanceToPlaceMark;
SerializedProperty compassDirections;
SerializedProperty northGameObject;
SerializedProperty southGameObject;
SerializedProperty eastGameObject;
SerializedProperty westGameObject;
SerializedProperty northEastGameObject;
SerializedProperty southWestGameObject;
SerializedProperty southEastGameObject;
SerializedProperty northwestGameObject;
SerializedProperty compassEnabled;
SerializedProperty compassOffset;
SerializedProperty compassScale;
SerializedProperty showIntermediateDirections;
SerializedProperty maximumLeftDistance;
SerializedProperty maximumRightDistance;
SerializedProperty usePlayerTransformOrientationOnCompassOnThirdPerson;
SerializedProperty usePlayerTransformOrientationOnCompassOnFirstPerson;
SerializedProperty usePlayerTransformOrientationOnCompassOnLockedCamera;
SerializedProperty buildingList;
SerializedProperty mainScreenObjectivesManagerName;
SerializedProperty mainMapCreatorManagerName;
SerializedProperty ingameMenuName;
SerializedProperty beaconIconTypeName;
SerializedProperty markIconTypeName;
SerializedProperty searchBuildingListIfNotAssigned;
SerializedProperty checkElementsOnAwakeEnabled;
Color defBackgroundColor;
mapSystem mapSystemManager;
string[] buildingListString;
int temporalBuildingIndex;
string[] floorListString;
int temporalFloorIndex;
string[] mapPartListString;
int temporalMapPartIndex;
GUIStyle buttonStyle = new GUIStyle ();
void OnEnable ()
{
mapEnabled = serializedObject.FindProperty ("mapEnabled");
openMenuEnabled = serializedObject.FindProperty ("openMenuEnabled");
changeFloorWithTriggers = serializedObject.FindProperty ("changeFloorWithTriggers");
showWarningMessages = serializedObject.FindProperty ("showWarningMessages");
updateMapIconTypesOnStart = serializedObject.FindProperty ("updateMapIconTypesOnStart");
currentBuildingName = serializedObject.FindProperty ("currentBuildingName");
currentBuildingIndex = serializedObject.FindProperty ("currentBuildingIndex");
currentFloorIndex = serializedObject.FindProperty ("currentFloorIndex");
currentFloorNumber = serializedObject.FindProperty ("currentFloorNumber");
currentMapPartIndex = serializedObject.FindProperty ("currentMapPartIndex");
mapCreatorManager = serializedObject.FindProperty ("mapCreatorManager");
showMapComponents = serializedObject.FindProperty ("showMapComponents");
showMapSettings = serializedObject.FindProperty ("showMapSettings");
showCompassComponents = serializedObject.FindProperty ("showCompassComponents");
showCompassSettings = serializedObject.FindProperty ("showCompassSettings");
showMapFloorAndIcons = serializedObject.FindProperty ("showMapFloorAndIcons");
showMarkSettings = serializedObject.FindProperty ("showMarkSettings");
mapCamera = serializedObject.FindProperty ("mapCamera");
mapSystemPivotTransform = serializedObject.FindProperty ("mapSystemPivotTransform");
mapSystemCameraTransform = serializedObject.FindProperty ("mapSystemCameraTransform");
player = serializedObject.FindProperty ("player");
mapRender = serializedObject.FindProperty ("mapRender");
mapWindow = serializedObject.FindProperty ("mapWindow");
playerMapIcon = serializedObject.FindProperty ("playerMapIcon");
playerIconChild = serializedObject.FindProperty ("playerIconChild");
removeMarkButtonImage = serializedObject.FindProperty ("removeMarkButtonImage");
quickTravelButtonImage = serializedObject.FindProperty ("quickTravelButtonImage");
useMapIndexWindow = serializedObject.FindProperty ("useMapIndexWindow");
mapObjectTextIcon = serializedObject.FindProperty ("mapObjectTextIcon");
useBlurUIPanel = serializedObject.FindProperty ("useBlurUIPanel");
playerInput = serializedObject.FindProperty ("playerInput");
pauseManager = serializedObject.FindProperty ("pauseManager");
screenObjectivesManager = serializedObject.FindProperty ("screenObjectivesManager");
playerControllerManager = serializedObject.FindProperty ("playerControllerManager");
playerMapObjectInformation = serializedObject.FindProperty ("playerMapObjectInformation");
mainMapCamera = serializedObject.FindProperty ("mainMapCamera");
mapCreatorPrefab = serializedObject.FindProperty ("mapCreatorPrefab");
playerIconMovementSpeed = serializedObject.FindProperty ("playerIconMovementSpeed");
openMapSpeed = serializedObject.FindProperty ("openMapSpeed");
mouseDragMapSpeed = serializedObject.FindProperty ("mouseDragMapSpeed");
keysDragMapSpeed = serializedObject.FindProperty ("keysDragMapSpeed");
getClosestFloorToPlayerByDistance = serializedObject.FindProperty ("getClosestFloorToPlayerByDistance");
mapCameraMovementType = serializedObject.FindProperty ("mapCameraMovementType");
recenterCameraSpeed = serializedObject.FindProperty ("recenterCameraSpeed");
rotateMap = serializedObject.FindProperty ("rotateMap");
smoothRotationMap = serializedObject.FindProperty ("smoothRotationMap");
rotationSpeed = serializedObject.FindProperty ("rotationSpeed");
usingCircleMap = serializedObject.FindProperty ("usingCircleMap");
circleMapRadius = serializedObject.FindProperty ("circleMapRadius");
showOffScreenIcons = serializedObject.FindProperty ("showOffScreenIcons");
iconSize = serializedObject.FindProperty ("iconSize");
maxIconSize = serializedObject.FindProperty ("maxIconSize");
offScreenIconSize = serializedObject.FindProperty ("offScreenIconSize");
openMapIconSizeMultiplier = serializedObject.FindProperty ("openMapIconSizeMultiplier");
changeIconSizeSpeed = serializedObject.FindProperty ("changeIconSizeSpeed");
showIconsByFloor = serializedObject.FindProperty ("showIconsByFloor");
borderOffScreen = serializedObject.FindProperty ("borderOffScreen");
useTextInIcons = serializedObject.FindProperty ("useTextInIcons");
textIconsOffset = serializedObject.FindProperty ("textIconsOffset");
mapObjectTextIconColor = serializedObject.FindProperty ("mapObjectTextIconColor");
mapObjectTextSize = serializedObject.FindProperty ("mapObjectTextSize");
miniMapWindowEnabledInGame = serializedObject.FindProperty ("miniMapWindowEnabledInGame");
miniMapWindowSmoothOpening = serializedObject.FindProperty ("miniMapWindowSmoothOpening");
miniMapWindowWithMask = serializedObject.FindProperty ("miniMapWindowWithMask");
playerUseMapObjectInformation = serializedObject.FindProperty ("playerUseMapObjectInformation");
playerIconOffset = serializedObject.FindProperty ("playerIconOffset");
useCurrentMapIconPressed = serializedObject.FindProperty ("useCurrentMapIconPressed");
useMapCursor = serializedObject.FindProperty ("useMapCursor");
showInfoIconInsideCursor = serializedObject.FindProperty ("showInfoIconInsideCursor");
maxDistanceToMapIcon = serializedObject.FindProperty ("maxDistanceToMapIcon");
zoomWhenOpen = serializedObject.FindProperty ("zoomWhenOpen");
zoomWhenClose = serializedObject.FindProperty ("zoomWhenClose");
openCloseZoomSpeed = serializedObject.FindProperty ("openCloseZoomSpeed");
zoomSpeed = serializedObject.FindProperty ("zoomSpeed");
maxZoom = serializedObject.FindProperty ("maxZoom");
minZoom = serializedObject.FindProperty ("minZoom");
zoomToActivateIcons = serializedObject.FindProperty ("zoomToActivateIcons");
zoomToActivateTextIcons = serializedObject.FindProperty ("zoomToActivateTextIcons");
zoomWhenOpen3d = serializedObject.FindProperty ("zoomWhenOpen3d");
zoomWhenClose3d = serializedObject.FindProperty ("zoomWhenClose3d");
openCloseZoomSpeed3d = serializedObject.FindProperty ("openCloseZoomSpeed3d");
zoomSpeed3d = serializedObject.FindProperty ("zoomSpeed3d");
maxZoom3d = serializedObject.FindProperty ("maxZoom3d");
minZoom3d = serializedObject.FindProperty ("minZoom3d");
zoomToActivateIcons3d = serializedObject.FindProperty ("zoomToActivateIcons3d");
zoomToActivateTextIcons3d = serializedObject.FindProperty ("zoomToActivateTextIcons3d");
setColorOnCurrent3dMapPart = serializedObject.FindProperty ("setColorOnCurrent3dMapPart");
colorOnCurrent3dMapPart = serializedObject.FindProperty ("colorOnCurrent3dMapPart");
disabledRemoveMarkColor = serializedObject.FindProperty ("disabledRemoveMarkColor");
disabledQuickTravelColor = serializedObject.FindProperty ("disabledQuickTravelColor");
map3dEnabled = serializedObject.FindProperty ("map3dEnabled");
map3dPositionSpeed = serializedObject.FindProperty ("map3dPositionSpeed");
map3dRotationSpeed = serializedObject.FindProperty ("map3dRotationSpeed");
rangeAngleX = serializedObject.FindProperty ("rangeAngleX");
rangeAngleY = serializedObject.FindProperty ("rangeAngleY");
transtionTo3dSpeed = serializedObject.FindProperty ("transtionTo3dSpeed");
maxTimeBetweenTransition = serializedObject.FindProperty ("maxTimeBetweenTransition");
reset3dCameraSpeed = serializedObject.FindProperty ("reset3dCameraSpeed");
inital3dCameraRotation = serializedObject.FindProperty ("inital3dCameraRotation");
hideOffscreenIconsOn3dView = serializedObject.FindProperty ("hideOffscreenIconsOn3dView");
showIconsOn3dView = serializedObject.FindProperty ("showIconsOn3dView");
use3dMeshForPlayer = serializedObject.FindProperty ("use3dMeshForPlayer");
player3dMesh = serializedObject.FindProperty ("player3dMesh");
useEventIfMapEnabled = serializedObject.FindProperty ("useEventIfMapEnabled");
eventIfMapEnabled = serializedObject.FindProperty ("eventIfMapEnabled");
useEventIfMapDisabled = serializedObject.FindProperty ("useEventIfMapDisabled");
eventIfMapDisabled = serializedObject.FindProperty ("eventIfMapDisabled");
markPrefab = serializedObject.FindProperty ("markPrefab");
setMarkOnCurrenBuilding = serializedObject.FindProperty ("setMarkOnCurrenBuilding");
setMarkOnCurrentFloor = serializedObject.FindProperty ("setMarkOnCurrentFloor");
layerMaskToPlaceMark = serializedObject.FindProperty ("layerMaskToPlaceMark");
useRaycastToPlaceMarkOn2dMap = serializedObject.FindProperty ("useRaycastToPlaceMarkOn2dMap");
useMapCameraAsRaycastPoisitionOn2dMap = serializedObject.FindProperty ("useMapCameraAsRaycastPoisitionOn2dMap");
raycastDistanceToPlaceMark = serializedObject.FindProperty ("raycastDistanceToPlaceMark");
compassDirections = serializedObject.FindProperty ("compassDirections");
northGameObject = serializedObject.FindProperty ("northGameObject");
southGameObject = serializedObject.FindProperty ("southGameObject");
eastGameObject = serializedObject.FindProperty ("eastGameObject");
westGameObject = serializedObject.FindProperty ("westGameObject");
northEastGameObject = serializedObject.FindProperty ("northEastGameObject");
southWestGameObject = serializedObject.FindProperty ("southWestGameObject");
southEastGameObject = serializedObject.FindProperty ("southEastGameObject");
northwestGameObject = serializedObject.FindProperty ("northwestGameObject");
compassEnabled = serializedObject.FindProperty ("compassEnabled");
compassOffset = serializedObject.FindProperty ("compassOffset");
compassScale = serializedObject.FindProperty ("compassScale");
showIntermediateDirections = serializedObject.FindProperty ("showIntermediateDirections");
maximumLeftDistance = serializedObject.FindProperty ("maximumLeftDistance");
maximumRightDistance = serializedObject.FindProperty ("maximumRightDistance");
usePlayerTransformOrientationOnCompassOnThirdPerson = serializedObject.FindProperty ("usePlayerTransformOrientationOnCompassOnThirdPerson");
usePlayerTransformOrientationOnCompassOnFirstPerson = serializedObject.FindProperty ("usePlayerTransformOrientationOnCompassOnFirstPerson");
usePlayerTransformOrientationOnCompassOnLockedCamera = serializedObject.FindProperty ("usePlayerTransformOrientationOnCompassOnLockedCamera");
buildingList = serializedObject.FindProperty ("buildingList");
mainScreenObjectivesManagerName = serializedObject.FindProperty ("mainScreenObjectivesManagerName");
mainMapCreatorManagerName = serializedObject.FindProperty ("mainMapCreatorManagerName");
ingameMenuName = serializedObject.FindProperty ("ingameMenuName");
beaconIconTypeName = serializedObject.FindProperty ("beaconIconTypeName");
markIconTypeName = serializedObject.FindProperty ("markIconTypeName");
searchBuildingListIfNotAssigned = serializedObject.FindProperty ("searchBuildingListIfNotAssigned");
checkElementsOnAwakeEnabled = serializedObject.FindProperty ("checkElementsOnAwakeEnabled");
mapSystemManager = (mapSystem)target;
}
public override void OnInspectorGUI ()
{
GUILayout.BeginVertical (GUILayout.Height (30));
EditorGUILayout.Space ();
buttonStyle = new GUIStyle (GUI.skin.button);
buttonStyle.fontStyle = FontStyle.Bold;
buttonStyle.fontSize = 12;
GUILayout.BeginVertical ("Main Settings", "window");
EditorGUILayout.PropertyField (mapEnabled);
EditorGUILayout.PropertyField (openMenuEnabled);
EditorGUILayout.PropertyField (changeFloorWithTriggers);
EditorGUILayout.PropertyField (showWarningMessages);
EditorGUILayout.PropertyField (updateMapIconTypesOnStart);
EditorGUILayout.PropertyField (searchBuildingListIfNotAssigned);
EditorGUILayout.PropertyField (checkElementsOnAwakeEnabled);
EditorGUILayout.Space ();
EditorGUILayout.Space ();
EditorGUILayout.PropertyField (mainScreenObjectivesManagerName);
EditorGUILayout.PropertyField (mainMapCreatorManagerName);
EditorGUILayout.PropertyField (ingameMenuName);
EditorGUILayout.PropertyField (beaconIconTypeName);
EditorGUILayout.PropertyField (markIconTypeName);
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Player Position In Map Settings", "window");
if (Application.isPlaying) {
GUILayout.Label ("Current Building Name\t" + currentBuildingName.stringValue);
GUILayout.Label ("Current Building Index\t" + currentBuildingIndex.intValue);
GUILayout.Label ("Current Floor Index\t\t" + currentFloorIndex.intValue);
GUILayout.Label ("Current Floor Number\t\t" + currentFloorNumber.intValue);
GUILayout.Label ("Current Map Part Index\t" + currentMapPartIndex.intValue);
}
buildingListString = mapSystemManager.buildingListString;
if (buildingListString.Length > 0) {
temporalBuildingIndex = mapSystemManager.currentBuildingIndex;
temporalBuildingIndex = EditorGUILayout.Popup ("Building Number", temporalBuildingIndex, buildingListString);
mapSystemManager.currentBuildingIndex = temporalBuildingIndex;
if (temporalBuildingIndex >= 0) {
mapSystemManager.currentBuildingName = buildingListString [temporalBuildingIndex];
}
floorListString = mapSystemManager.floorListString;
if (floorListString.Length > 0) {
temporalFloorIndex = mapSystemManager.currentFloorIndex;
temporalFloorIndex = EditorGUILayout.Popup ("Floor Number", temporalFloorIndex, floorListString);
mapSystemManager.currentFloorIndex = temporalFloorIndex;
if (temporalFloorIndex >= 0 && temporalFloorIndex < floorListString.Length) {
mapSystemManager.currentFloorName = floorListString [temporalFloorIndex];
}
mapPartListString = mapSystemManager.mapPartListString;
if (mapPartListString.Length > 0) {
temporalMapPartIndex = mapSystemManager.currentMapPartIndex;
temporalMapPartIndex = EditorGUILayout.Popup ("Map Part", temporalMapPartIndex, mapPartListString);
mapSystemManager.currentMapPartIndex = temporalMapPartIndex;
if (mapPartListString.Length > temporalMapPartIndex) {
mapSystemManager.currentMapPartName = mapPartListString [temporalMapPartIndex];
}
}
}
}
EditorGUILayout.Space ();
if (GUILayout.Button ("Update Map Info")) {
mapSystemManager.updateEditorMapInfo ();
}
EditorGUILayout.Space ();
if (GUILayout.Button ("Add Player Map System To Map Creator")) {
mapSystemManager.addPlayerMapSystemToMapCreator ();
}
EditorGUILayout.Space ();
EditorGUILayout.PropertyField (mapCreatorManager);
if (mapCreatorManager.objectReferenceValue) {
EditorGUILayout.Space ();
if (GUILayout.Button ("Select Map Creator Object")) {
mapSystemManager.selectMapCreatorObject ();
}
} else {
EditorGUILayout.Space ();
if (GUILayout.Button ("Add Map Creator")) {
mapSystemManager.addNewMapCreator ();
}
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.EndVertical ();
EditorGUILayout.Space ();
defBackgroundColor = GUI.backgroundColor;
EditorGUILayout.BeginVertical ();
if (showMapComponents.boolValue) {
GUI.backgroundColor = Color.gray;
} else {
GUI.backgroundColor = defBackgroundColor;
}
if (GUILayout.Button ("Map Components")) {
showMapComponents.boolValue = !showMapComponents.boolValue;
}
if (showMapSettings.boolValue) {
GUI.backgroundColor = Color.gray;
} else {
GUI.backgroundColor = defBackgroundColor;
}
if (GUILayout.Button ("Map Settings")) {
showMapSettings.boolValue = !showMapSettings.boolValue;
}
if (showMarkSettings.boolValue) {
GUI.backgroundColor = Color.gray;
} else {
GUI.backgroundColor = defBackgroundColor;
}
if (GUILayout.Button ("Mark Settings")) {
showMarkSettings.boolValue = !showMarkSettings.boolValue;
}
if (showCompassComponents.boolValue) {
GUI.backgroundColor = Color.gray;
} else {
GUI.backgroundColor = defBackgroundColor;
}
if (GUILayout.Button ("Compass Components")) {
showCompassComponents.boolValue = !showCompassComponents.boolValue;
}
if (showCompassSettings.boolValue) {
GUI.backgroundColor = Color.gray;
} else {
GUI.backgroundColor = defBackgroundColor;
}
if (GUILayout.Button ("Compass Settings")) {
showCompassSettings.boolValue = !showCompassSettings.boolValue;
}
if (showMapFloorAndIcons.boolValue) {
GUI.backgroundColor = Color.gray;
} else {
GUI.backgroundColor = defBackgroundColor;
}
if (GUILayout.Button ("World Map")) {
showMapFloorAndIcons.boolValue = !showMapFloorAndIcons.boolValue;
}
GUI.backgroundColor = defBackgroundColor;
EditorGUILayout.EndVertical ();
if (showMapComponents.boolValue) {
GUILayout.BeginVertical ("box");
EditorGUILayout.Space ();
GUI.color = Color.cyan;
EditorGUILayout.HelpBox ("Set every Map Component here", MessageType.None);
GUI.color = Color.white;
EditorGUILayout.Space ();
EditorGUILayout.Space ();
EditorGUILayout.PropertyField (mapCamera);
EditorGUILayout.PropertyField (mapSystemPivotTransform);
EditorGUILayout.PropertyField (mapSystemCameraTransform);
EditorGUILayout.PropertyField (player);
EditorGUILayout.PropertyField (mapRender);
EditorGUILayout.PropertyField (mapWindow);
EditorGUILayout.PropertyField (playerMapIcon);
EditorGUILayout.PropertyField (playerIconChild);
EditorGUILayout.PropertyField (removeMarkButtonImage);
EditorGUILayout.PropertyField (quickTravelButtonImage);
EditorGUILayout.PropertyField (useMapIndexWindow);
EditorGUILayout.PropertyField (mapObjectTextIcon);
EditorGUILayout.PropertyField (useBlurUIPanel);
EditorGUILayout.PropertyField (playerInput);
EditorGUILayout.PropertyField (pauseManager);
EditorGUILayout.PropertyField (screenObjectivesManager);
EditorGUILayout.PropertyField (playerControllerManager);
EditorGUILayout.PropertyField (mapCreatorManager);
EditorGUILayout.PropertyField (playerMapObjectInformation);
EditorGUILayout.PropertyField (mainMapCamera);
EditorGUILayout.PropertyField (mapCreatorPrefab);
EditorGUILayout.Space ();
GUILayout.EndVertical ();
}
if (showMapSettings.boolValue) {
GUILayout.BeginVertical ("box");
EditorGUILayout.Space ();
GUI.color = Color.cyan;
EditorGUILayout.HelpBox ("Map Settings", MessageType.None);
GUI.color = Color.white;
EditorGUILayout.Space ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("CONTROL", "window");
EditorGUILayout.PropertyField (playerIconMovementSpeed);
EditorGUILayout.PropertyField (openMapSpeed);
EditorGUILayout.PropertyField (mouseDragMapSpeed);
EditorGUILayout.PropertyField (keysDragMapSpeed);
EditorGUILayout.PropertyField (getClosestFloorToPlayerByDistance);
EditorGUILayout.PropertyField (mapCameraMovementType);
EditorGUILayout.PropertyField (recenterCameraSpeed);
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("ROTATION", "window");
EditorGUILayout.PropertyField (rotateMap);
if (rotateMap.boolValue) {
EditorGUILayout.PropertyField (smoothRotationMap);
EditorGUILayout.PropertyField (rotationSpeed);
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("CIRCLE MAP", "window");
EditorGUILayout.PropertyField (usingCircleMap);
if (usingCircleMap.boolValue) {
EditorGUILayout.PropertyField (circleMapRadius);
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("ICONS", "window");
EditorGUILayout.PropertyField (showOffScreenIcons);
EditorGUILayout.PropertyField (iconSize);
EditorGUILayout.PropertyField (maxIconSize);
EditorGUILayout.PropertyField (offScreenIconSize);
EditorGUILayout.PropertyField (openMapIconSizeMultiplier);
EditorGUILayout.PropertyField (changeIconSizeSpeed);
EditorGUILayout.PropertyField (showIconsByFloor);
EditorGUILayout.PropertyField (borderOffScreen);
EditorGUILayout.PropertyField (useTextInIcons);
EditorGUILayout.PropertyField (textIconsOffset);
EditorGUILayout.PropertyField (mapObjectTextIconColor);
EditorGUILayout.PropertyField (mapObjectTextSize);
EditorGUILayout.PropertyField (miniMapWindowEnabledInGame);
EditorGUILayout.PropertyField (miniMapWindowSmoothOpening);
EditorGUILayout.PropertyField (miniMapWindowWithMask);
EditorGUILayout.PropertyField (playerUseMapObjectInformation);
EditorGUILayout.PropertyField (playerIconOffset);
EditorGUILayout.PropertyField (useCurrentMapIconPressed);
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("MAP CURSOR SETTINGS", "window");
EditorGUILayout.PropertyField (useMapCursor);
if (useMapCursor.boolValue) {
EditorGUILayout.PropertyField (showInfoIconInsideCursor);
if (showInfoIconInsideCursor.boolValue) {
EditorGUILayout.PropertyField (maxDistanceToMapIcon);
}
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("2D ZOOM SETTINGS", "window");
EditorGUILayout.PropertyField (zoomWhenOpen);
EditorGUILayout.PropertyField (zoomWhenClose);
EditorGUILayout.PropertyField (openCloseZoomSpeed);
EditorGUILayout.PropertyField (zoomSpeed);
EditorGUILayout.PropertyField (maxZoom);
EditorGUILayout.PropertyField (minZoom);
EditorGUILayout.PropertyField (zoomToActivateIcons);
EditorGUILayout.PropertyField (zoomToActivateTextIcons);
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("3D ZOOM SETTINGS", "window");
EditorGUILayout.PropertyField (zoomWhenOpen3d);
EditorGUILayout.PropertyField (zoomWhenClose3d);
EditorGUILayout.PropertyField (openCloseZoomSpeed3d);
EditorGUILayout.PropertyField (zoomSpeed3d);
EditorGUILayout.PropertyField (maxZoom3d);
EditorGUILayout.PropertyField (minZoom3d);
EditorGUILayout.PropertyField (zoomToActivateIcons3d);
EditorGUILayout.PropertyField (zoomToActivateTextIcons3d);
EditorGUILayout.PropertyField (setColorOnCurrent3dMapPart);
if (setColorOnCurrent3dMapPart.boolValue) {
EditorGUILayout.PropertyField (colorOnCurrent3dMapPart);
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("MARKS", "window");
EditorGUILayout.PropertyField (disabledRemoveMarkColor);
EditorGUILayout.PropertyField (disabledQuickTravelColor);
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("3D Map Settings", "window");
EditorGUILayout.PropertyField (map3dEnabled);
if (map3dEnabled.boolValue) {
EditorGUILayout.PropertyField (map3dPositionSpeed);
EditorGUILayout.PropertyField (map3dRotationSpeed);
EditorGUILayout.PropertyField (rangeAngleX);
EditorGUILayout.PropertyField (rangeAngleY);
EditorGUILayout.PropertyField (transtionTo3dSpeed);
EditorGUILayout.PropertyField (maxTimeBetweenTransition);
EditorGUILayout.PropertyField (reset3dCameraSpeed);
EditorGUILayout.PropertyField (inital3dCameraRotation);
EditorGUILayout.PropertyField (hideOffscreenIconsOn3dView);
EditorGUILayout.PropertyField (showIconsOn3dView);
EditorGUILayout.PropertyField (use3dMeshForPlayer);
EditorGUILayout.PropertyField (player3dMesh);
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Map Event Settings", "window");
EditorGUILayout.PropertyField (useEventIfMapEnabled);
if (useEventIfMapEnabled.boolValue) {
EditorGUILayout.PropertyField (eventIfMapEnabled);
}
EditorGUILayout.PropertyField (useEventIfMapDisabled);
if (useEventIfMapDisabled.boolValue) {
EditorGUILayout.PropertyField (eventIfMapDisabled);
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.EndVertical ();
}
if (showMarkSettings.boolValue) {
GUILayout.BeginVertical ("box");
EditorGUILayout.Space ();
GUI.color = Color.cyan;
EditorGUILayout.HelpBox ("Mark Settings", MessageType.None);
GUI.color = Color.white;
EditorGUILayout.Space ();
EditorGUILayout.Space ();
EditorGUILayout.PropertyField (markPrefab);
EditorGUILayout.PropertyField (setMarkOnCurrenBuilding);
EditorGUILayout.PropertyField (setMarkOnCurrentFloor);
EditorGUILayout.PropertyField (raycastDistanceToPlaceMark);
EditorGUILayout.Space ();
EditorGUILayout.PropertyField (layerMaskToPlaceMark);
EditorGUILayout.PropertyField (useRaycastToPlaceMarkOn2dMap);
EditorGUILayout.PropertyField (useMapCameraAsRaycastPoisitionOn2dMap);
EditorGUILayout.Space ();
GUILayout.EndVertical ();
}
if (showCompassComponents.boolValue) {
GUILayout.BeginVertical ("box");
EditorGUILayout.Space ();
GUI.color = Color.cyan;
EditorGUILayout.HelpBox ("Set every Compass Component here", MessageType.None);
GUI.color = Color.white;
EditorGUILayout.Space ();
EditorGUILayout.Space ();
EditorGUILayout.PropertyField (compassDirections);
EditorGUILayout.PropertyField (northGameObject);
EditorGUILayout.PropertyField (southGameObject);
EditorGUILayout.PropertyField (eastGameObject);
EditorGUILayout.PropertyField (westGameObject);
EditorGUILayout.PropertyField (northEastGameObject);
EditorGUILayout.PropertyField (southWestGameObject);
EditorGUILayout.PropertyField (southEastGameObject);
EditorGUILayout.PropertyField (northwestGameObject);
EditorGUILayout.Space ();
GUILayout.EndVertical ();
}
if (showCompassSettings.boolValue) {
GUILayout.BeginVertical ("box");
EditorGUILayout.Space ();
GUI.color = Color.cyan;
EditorGUILayout.HelpBox ("Compass Settings", MessageType.None);
GUI.color = Color.white;
EditorGUILayout.Space ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Main Settings", "window");
EditorGUILayout.PropertyField (compassEnabled);
EditorGUILayout.PropertyField (compassOffset);
EditorGUILayout.PropertyField (compassScale);
EditorGUILayout.PropertyField (showIntermediateDirections);
EditorGUILayout.PropertyField (maximumLeftDistance);
EditorGUILayout.PropertyField (maximumRightDistance);
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Compass Orientation Settings", "window");
EditorGUILayout.PropertyField (usePlayerTransformOrientationOnCompassOnThirdPerson);
EditorGUILayout.PropertyField (usePlayerTransformOrientationOnCompassOnFirstPerson);
EditorGUILayout.PropertyField (usePlayerTransformOrientationOnCompassOnLockedCamera);
GUILayout.EndVertical ();
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.EndVertical ();
}
if (showMapFloorAndIcons.boolValue) {
GUILayout.BeginVertical ("box");
EditorGUILayout.Space ();
GUI.color = Color.cyan;
EditorGUILayout.HelpBox ("Configure every Floor and Icon element for the map", MessageType.None);
GUI.color = Color.white;
EditorGUILayout.Space ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Building List", "window");
showBuildingList (buildingList);
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.EndVertical ();
}
GUI.backgroundColor = defBackgroundColor;
if (GUI.changed) {
serializedObject.ApplyModifiedProperties ();
}
EditorGUILayout.Space ();
}
void showBuildingList (SerializedProperty list)
{
EditorGUILayout.Space ();
if (GUILayout.Button ("Show/Hide " + list.displayName, buttonStyle)) {
list.isExpanded = !list.isExpanded;
}
EditorGUILayout.Space ();
if (list.isExpanded) {
EditorGUILayout.Space ();
GUILayout.Label ("Number Of Buildings: " + list.arraySize);
EditorGUILayout.Space ();
if (GUILayout.Button ("Search Building List")) {
mapSystemManager.searchBuildingList ();
}
EditorGUILayout.Space ();
GUILayout.BeginHorizontal ();
if (GUILayout.Button ("Add Building")) {
list.arraySize++;
}
if (GUILayout.Button ("Clear List")) {
list.arraySize = 0;
}
GUILayout.EndHorizontal ();
EditorGUILayout.Space ();
GUILayout.BeginHorizontal ();
if (GUILayout.Button ("Expand All")) {
for (int i = 0; i < list.arraySize; i++) {
list.GetArrayElementAtIndex (i).isExpanded = true;
}
}
if (GUILayout.Button ("Collapse All")) {
for (int i = 0; i < list.arraySize; i++) {
list.GetArrayElementAtIndex (i).isExpanded = false;
}
}
GUILayout.EndHorizontal ();
EditorGUILayout.Space ();
for (int i = 0; i < list.arraySize; i++) {
bool expanded = false;
GUILayout.BeginHorizontal ();
GUILayout.BeginHorizontal ("box");
EditorGUILayout.Space ();
if (i < list.arraySize && i >= 0) {
EditorGUILayout.BeginVertical ();
EditorGUILayout.PropertyField (list.GetArrayElementAtIndex (i), false);
if (list.GetArrayElementAtIndex (i).isExpanded) {
showBuildingElementInfo (list.GetArrayElementAtIndex (i));
expanded = true;
}
EditorGUILayout.Space ();
GUILayout.EndVertical ();
}
GUILayout.EndHorizontal ();
if (expanded) {
GUILayout.BeginVertical ();
} else {
GUILayout.BeginHorizontal ();
}
if (GUILayout.Button ("x")) {
list.DeleteArrayElementAtIndex (i);
}
if (GUILayout.Button ("v")) {
if (i >= 0) {
list.MoveArrayElement (i, i + 1);
}
}
if (GUILayout.Button ("^")) {
if (i < list.arraySize) {
list.MoveArrayElement (i, i - 1);
}
}
if (expanded) {
GUILayout.EndVertical ();
} else {
GUILayout.EndHorizontal ();
}
GUILayout.EndHorizontal ();
}
}
}
void showBuildingElementInfo (SerializedProperty list)
{
GUILayout.BeginVertical ("box");
EditorGUILayout.PropertyField (list.FindPropertyRelative ("Name"));
EditorGUILayout.PropertyField (list.FindPropertyRelative ("isCurrentMap"));
EditorGUILayout.PropertyField (list.FindPropertyRelative ("isInterior"));
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useCameraPositionOnMapMenu"));
if (list.FindPropertyRelative ("useCameraPositionOnMapMenu").boolValue) {
EditorGUILayout.PropertyField (list.FindPropertyRelative ("cameraPositionOnMapMenu"));
}
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Floors List", "window");
showFloorList (list.FindPropertyRelative ("floors"));
GUILayout.EndVertical ();
GUILayout.EndVertical ();
}
void showFloorList (SerializedProperty list)
{
EditorGUILayout.Space ();
if (GUILayout.Button ("Show/Hide " + list.displayName, buttonStyle)) {
list.isExpanded = !list.isExpanded;
}
EditorGUILayout.Space ();
if (list.isExpanded) {
EditorGUILayout.Space ();
GUILayout.Label ("Number Of Floors: " + list.arraySize);
EditorGUILayout.Space ();
GUILayout.BeginHorizontal ();
if (GUILayout.Button ("Add Floor")) {
list.arraySize++;
}
if (GUILayout.Button ("Clear List")) {
list.arraySize = 0;
}
GUILayout.EndHorizontal ();
EditorGUILayout.Space ();
GUILayout.BeginHorizontal ();
if (GUILayout.Button ("Expand All")) {
for (int i = 0; i < list.arraySize; i++) {
list.GetArrayElementAtIndex (i).isExpanded = true;
}
}
if (GUILayout.Button ("Collapse All")) {
for (int i = 0; i < list.arraySize; i++) {
list.GetArrayElementAtIndex (i).isExpanded = false;
}
}
GUILayout.EndHorizontal ();
EditorGUILayout.Space ();
for (int i = 0; i < list.arraySize; i++) {
bool expanded = false;
GUILayout.BeginHorizontal ();
GUILayout.BeginHorizontal ("box");
EditorGUILayout.Space ();
if (i < list.arraySize && i >= 0) {
EditorGUILayout.BeginVertical ();
EditorGUILayout.PropertyField (list.GetArrayElementAtIndex (i), false);
if (list.GetArrayElementAtIndex (i).isExpanded) {
showFloorElementInfo (list.GetArrayElementAtIndex (i));
expanded = true;
}
EditorGUILayout.Space ();
GUILayout.EndVertical ();
}
GUILayout.EndHorizontal ();
if (expanded) {
GUILayout.BeginVertical ();
} else {
GUILayout.BeginHorizontal ();
}
if (GUILayout.Button ("x")) {
list.DeleteArrayElementAtIndex (i);
}
if (GUILayout.Button ("v")) {
if (i >= 0) {
list.MoveArrayElement (i, i + 1);
}
}
if (GUILayout.Button ("^")) {
if (i < list.arraySize) {
list.MoveArrayElement (i, i - 1);
}
}
if (expanded) {
GUILayout.EndVertical ();
} else {
GUILayout.EndHorizontal ();
}
GUILayout.EndHorizontal ();
}
}
}
void showFloorElementInfo (SerializedProperty list)
{
GUILayout.BeginVertical ("box");
EditorGUILayout.PropertyField (list.FindPropertyRelative ("Name"));
EditorGUILayout.PropertyField (list.FindPropertyRelative ("floorNumber"));
EditorGUILayout.PropertyField (list.FindPropertyRelative ("floor"));
GUILayout.EndVertical ();
}
}
#endif