plantilla base para movimiento básico
This commit is contained in:
Robii Aragon
2026-02-05 05:07:55 -08:00
parent 195b696771
commit 779f2c8b20
14443 changed files with 23840465 additions and 452 deletions

View File

@@ -0,0 +1,390 @@
using UnityEngine;
using System.Collections;
#if UNITY_EDITOR
using UnityEditor;
[CustomEditor (typeof(mapObjectInformation))]
public class mapObjectInformationEditor : Editor
{
SerializedProperty ID;
SerializedProperty mapObjectName;
SerializedProperty description;
SerializedProperty mapObjectProp;
SerializedProperty typeNameList;
SerializedProperty typeIndex;
SerializedProperty typeName;
SerializedProperty visibleInAllBuildings;
SerializedProperty visibleInAllFloors;
SerializedProperty calculateFloorAtStart;
SerializedProperty buildingIndex;
SerializedProperty currentBuilding;
SerializedProperty floorIndex;
SerializedProperty currentFloor;
SerializedProperty useCustomValues;
SerializedProperty offset;
SerializedProperty extraIconSizeOnMap;
SerializedProperty followCameraRotation;
SerializedProperty followObjectRotation;
SerializedProperty canChangeBuildingAndFloor;
SerializedProperty activateAtStart;
SerializedProperty disableWhenPlayerHasReached;
SerializedProperty useCloseDistance;
SerializedProperty showOffScreenIcon;
SerializedProperty showMapWindowIcon;
SerializedProperty showDistance;
SerializedProperty showDistanceOffScreen;
SerializedProperty triggerRadius;
SerializedProperty triggerColor;
SerializedProperty objectiveOffset;
SerializedProperty removeComponentWhenObjectiveReached;
SerializedProperty setCustomCompassSettings;
SerializedProperty useCompassIcon;
SerializedProperty compassIconPrefab;
SerializedProperty verticalOffset;
SerializedProperty useCustomObjectiveColor;
SerializedProperty removeCustomObjectiveColor;
SerializedProperty objectiveColor;
SerializedProperty callEventWhenPointReached;
SerializedProperty pointReachedEvent;
SerializedProperty belongToMapPart;
SerializedProperty mapPartList;
SerializedProperty mapPartName;
SerializedProperty mapPartIndex;
SerializedProperty useEventsOnChangeFloor;
SerializedProperty useEventOnEnabledFloor;
SerializedProperty evenOnEnabledFloor;
SerializedProperty useEventOnDisabledFloor;
SerializedProperty evenOnDisabledFloor;
SerializedProperty showGizmo;
SerializedProperty gizmoLabelOffset;
SerializedProperty gizmoLabelColor;
SerializedProperty offsetShowGizmo;
SerializedProperty offsetGizmoColor;
SerializedProperty offsetRadius;
SerializedProperty mainScreenObjectivesManagerName;
SerializedProperty mainMapCreatorManagerName;
SerializedProperty mapCreatorManager;
SerializedProperty checkIfIncludedOnScreenObjectiveOnRemoveMapObject;
mapObjectInformation mapObject;
GUIStyle style = new GUIStyle ();
void OnEnable ()
{
ID = serializedObject.FindProperty ("ID");
mapObjectName = serializedObject.FindProperty ("mapObjectName");
description = serializedObject.FindProperty ("description");
mapObjectProp = serializedObject.FindProperty ("mapObject");
typeNameList = serializedObject.FindProperty ("typeNameList");
typeIndex = serializedObject.FindProperty ("typeIndex");
typeName = serializedObject.FindProperty ("typeName");
visibleInAllBuildings = serializedObject.FindProperty ("visibleInAllBuildings");
visibleInAllFloors = serializedObject.FindProperty ("visibleInAllFloors");
calculateFloorAtStart = serializedObject.FindProperty ("calculateFloorAtStart");
buildingIndex = serializedObject.FindProperty ("buildingIndex");
currentBuilding = serializedObject.FindProperty ("currentBuilding");
floorIndex = serializedObject.FindProperty ("floorIndex");
currentFloor = serializedObject.FindProperty ("currentFloor");
useCustomValues = serializedObject.FindProperty ("useCustomValues");
offset = serializedObject.FindProperty ("offset");
extraIconSizeOnMap = serializedObject.FindProperty ("extraIconSizeOnMap");
followCameraRotation = serializedObject.FindProperty ("followCameraRotation");
followObjectRotation = serializedObject.FindProperty ("followObjectRotation");
canChangeBuildingAndFloor = serializedObject.FindProperty ("canChangeBuildingAndFloor");
activateAtStart = serializedObject.FindProperty ("activateAtStart");
disableWhenPlayerHasReached = serializedObject.FindProperty ("disableWhenPlayerHasReached");
useCloseDistance = serializedObject.FindProperty ("useCloseDistance");
showOffScreenIcon = serializedObject.FindProperty ("showOffScreenIcon");
showMapWindowIcon = serializedObject.FindProperty ("showMapWindowIcon");
showDistance = serializedObject.FindProperty ("showDistance");
showDistanceOffScreen = serializedObject.FindProperty ("showDistanceOffScreen");
triggerRadius = serializedObject.FindProperty ("triggerRadius");
triggerColor = serializedObject.FindProperty ("triggerColor");
objectiveOffset = serializedObject.FindProperty ("objectiveOffset");
removeComponentWhenObjectiveReached = serializedObject.FindProperty ("removeComponentWhenObjectiveReached");
setCustomCompassSettings = serializedObject.FindProperty ("setCustomCompassSettings");
useCompassIcon = serializedObject.FindProperty ("useCompassIcon");
compassIconPrefab = serializedObject.FindProperty ("compassIconPrefab");
verticalOffset = serializedObject.FindProperty ("verticalOffset");
useCustomObjectiveColor = serializedObject.FindProperty ("useCustomObjectiveColor");
removeCustomObjectiveColor = serializedObject.FindProperty ("removeCustomObjectiveColor");
objectiveColor = serializedObject.FindProperty ("objectiveColor");
callEventWhenPointReached = serializedObject.FindProperty ("callEventWhenPointReached");
pointReachedEvent = serializedObject.FindProperty ("pointReachedEvent");
belongToMapPart = serializedObject.FindProperty ("belongToMapPart");
mapPartList = serializedObject.FindProperty ("mapPartList");
mapPartName = serializedObject.FindProperty ("mapPartName");
mapPartIndex = serializedObject.FindProperty ("mapPartIndex");
useEventsOnChangeFloor = serializedObject.FindProperty ("useEventsOnChangeFloor");
useEventOnEnabledFloor = serializedObject.FindProperty ("useEventOnEnabledFloor");
evenOnEnabledFloor = serializedObject.FindProperty ("evenOnEnabledFloor");
useEventOnDisabledFloor = serializedObject.FindProperty ("useEventOnDisabledFloor");
evenOnDisabledFloor = serializedObject.FindProperty ("evenOnDisabledFloor");
showGizmo = serializedObject.FindProperty ("showGizmo");
gizmoLabelOffset = serializedObject.FindProperty ("gizmoLabelOffset");
gizmoLabelColor = serializedObject.FindProperty ("gizmoLabelColor");
offsetShowGizmo = serializedObject.FindProperty ("offsetShowGizmo");
offsetGizmoColor = serializedObject.FindProperty ("offsetGizmoColor");
offsetRadius = serializedObject.FindProperty ("offsetRadius");
mainScreenObjectivesManagerName = serializedObject.FindProperty ("mainScreenObjectivesManagerName");
mainMapCreatorManagerName = serializedObject.FindProperty ("mainMapCreatorManagerName");
mapCreatorManager = serializedObject.FindProperty ("mapCreatorManager");
checkIfIncludedOnScreenObjectiveOnRemoveMapObject = serializedObject.FindProperty ("checkIfIncludedOnScreenObjectiveOnRemoveMapObject");
mapObject = (mapObjectInformation)target;
}
void OnSceneGUI ()
{
if (!Application.isPlaying) {
if (mapObject.showGizmo) {
if (mapObject.disableWhenPlayerHasReached) {
style.normal.textColor = mapObject.gizmoLabelColor;
style.alignment = TextAnchor.MiddleCenter;
Handles.Label (mapObject.transform.position + mapObject.transform.up * mapObject.triggerRadius + mapObject.transform.up * mapObject.gizmoLabelOffset,
"Objective: " + mapObject.gameObject.name, style);
}
if (mapObject.offsetShowGizmo) {
style.normal.textColor = mapObject.offsetGizmoColor;
style.alignment = TextAnchor.MiddleCenter;
Handles.Label (mapObject.transform.position + mapObject.offset, "Offset \n Position", style);
}
}
}
}
public override void OnInspectorGUI ()
{
GUILayout.BeginVertical (GUILayout.Height (30));
EditorGUILayout.Space ();
GUILayout.BeginVertical ("ID Settings", "window");
GUILayout.Label ("Map Object ID: " + ID.intValue);
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Main Settings", "window");
EditorGUILayout.PropertyField (mapObjectName);
EditorGUILayout.PropertyField (description);
EditorGUILayout.PropertyField (mapObjectProp);
EditorGUILayout.Space ();
EditorGUILayout.PropertyField (mainScreenObjectivesManagerName);
EditorGUILayout.PropertyField (mainMapCreatorManagerName);
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Map Object Settings", "window");
if (typeNameList.arraySize > 0) {
typeIndex.intValue = EditorGUILayout.Popup ("Map Icon Type", typeIndex.intValue, mapObject.typeNameList);
typeName.stringValue = mapObject.typeNameList [typeIndex.intValue];
}
EditorGUILayout.PropertyField (visibleInAllBuildings);
EditorGUILayout.PropertyField (visibleInAllFloors);
EditorGUILayout.PropertyField (calculateFloorAtStart);
if (mapObject.buildingList != null && mapObject.buildingList.Length > 0) {
buildingIndex.intValue = EditorGUILayout.Popup ("Building Number", buildingIndex.intValue, mapObject.buildingList);
if (buildingIndex.intValue >= 0 && mapObject.typeNameList.Length > buildingIndex.intValue) {
currentBuilding.stringValue = mapObject.typeNameList [buildingIndex.intValue];
}
if (mapObject.floorList != null && mapObject.floorList.Length > 0) {
floorIndex.intValue = EditorGUILayout.Popup ("Floor Number", floorIndex.intValue, mapObject.floorList);
if (floorIndex.intValue >= 0 && mapObject.floorList.Length > floorIndex.intValue) {
currentFloor.stringValue = mapObject.floorList [floorIndex.intValue];
}
}
}
EditorGUILayout.PropertyField (useCustomValues);
EditorGUILayout.PropertyField (offset);
EditorGUILayout.PropertyField (extraIconSizeOnMap);
EditorGUILayout.PropertyField (followCameraRotation);
EditorGUILayout.PropertyField (followObjectRotation);
EditorGUILayout.PropertyField (canChangeBuildingAndFloor);
EditorGUILayout.PropertyField (activateAtStart);
EditorGUILayout.PropertyField (checkIfIncludedOnScreenObjectiveOnRemoveMapObject);
EditorGUILayout.Space ();
if (GUILayout.Button ("Update Map Values")) {
mapObject.getMapObjectInformation ();
mapObject.checkIfMapObjectInformationFound ();
}
// if (GUILayout.Button ("Change Names")) {
// mapObject.changeNames ();
// }
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Advanced Settings", "window");
EditorGUILayout.PropertyField (disableWhenPlayerHasReached);
if (disableWhenPlayerHasReached.boolValue) {
EditorGUILayout.Space ();
GUI.color = Color.cyan;
EditorGUILayout.HelpBox ("Configure the Objective options", MessageType.None);
GUI.color = Color.white;
EditorGUILayout.Space ();
EditorGUILayout.Space ();
EditorGUILayout.PropertyField (useCloseDistance);
EditorGUILayout.PropertyField (showOffScreenIcon);
EditorGUILayout.PropertyField (showMapWindowIcon);
EditorGUILayout.PropertyField (showDistance);
EditorGUILayout.PropertyField (showDistanceOffScreen);
EditorGUILayout.PropertyField (triggerRadius);
EditorGUILayout.PropertyField (triggerColor);
EditorGUILayout.PropertyField (objectiveOffset);
EditorGUILayout.PropertyField (removeComponentWhenObjectiveReached);
EditorGUILayout.PropertyField (setCustomCompassSettings);
if (setCustomCompassSettings.boolValue) {
EditorGUILayout.PropertyField (useCompassIcon);
EditorGUILayout.PropertyField (compassIconPrefab);
EditorGUILayout.PropertyField (verticalOffset);
}
EditorGUILayout.Space ();
EditorGUILayout.PropertyField (useCustomObjectiveColor);
if (useCustomObjectiveColor.boolValue) {
EditorGUILayout.PropertyField (removeCustomObjectiveColor);
if (!removeCustomObjectiveColor.boolValue) {
EditorGUILayout.PropertyField (objectiveColor);
}
}
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Unity Event When Point Reached Settings", "window");
EditorGUILayout.PropertyField (callEventWhenPointReached);
if (callEventWhenPointReached.boolValue) {
EditorGUILayout.PropertyField (pointReachedEvent);
}
GUILayout.EndVertical ();
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Map Part Owner Settings", "window");
EditorGUILayout.PropertyField (belongToMapPart);
if (belongToMapPart.boolValue) {
if (mapPartList.arraySize > 0) {
mapPartIndex.intValue = EditorGUILayout.Popup ("Map Part Owner", mapPartIndex.intValue, mapObject.mapPartList);
if (mapPartList.arraySize > mapPartIndex.intValue) {
mapPartName.stringValue = mapObject.mapPartList [mapPartIndex.intValue];
}
}
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Floor Changed Events Settings", "window");
EditorGUILayout.PropertyField (useEventsOnChangeFloor);
if (useEventsOnChangeFloor.boolValue) {
EditorGUILayout.PropertyField (useEventOnEnabledFloor);
if (useEventOnEnabledFloor.boolValue) {
EditorGUILayout.PropertyField (evenOnEnabledFloor);
}
EditorGUILayout.PropertyField (useEventOnDisabledFloor);
if (useEventOnDisabledFloor.boolValue) {
EditorGUILayout.PropertyField (evenOnDisabledFloor);
}
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Debug Options", "window");
EditorGUILayout.PropertyField (buildingIndex);
EditorGUILayout.PropertyField (floorIndex);
if (GUILayout.Button ("Set Current Building/Floor Index")) {
if (Application.isPlaying) {
mapObject.setNewBuildingAndFloorIndexByInspector ();
}
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Gizmo Settings", "window");
EditorGUILayout.PropertyField (showGizmo);
if (showGizmo.boolValue) {
EditorGUILayout.PropertyField (gizmoLabelOffset);
EditorGUILayout.PropertyField (gizmoLabelColor);
if (offset.vector3Value != Vector3.zero) {
EditorGUILayout.PropertyField (offsetShowGizmo);
if (offsetShowGizmo.boolValue) {
EditorGUILayout.PropertyField (offsetGizmoColor);
EditorGUILayout.PropertyField (offsetRadius);
}
}
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Debug", "window");
EditorGUILayout.PropertyField (mapCreatorManager);
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.EndVertical ();
if (GUI.changed) {
serializedObject.ApplyModifiedProperties ();
}
}
}
#endif