From 7dc0a04856357f55ea0cce73a7345fb05a46fb4c Mon Sep 17 00:00:00 2001 From: ntr Date: Wed, 26 Jul 2023 23:52:26 +1000 Subject: [PATCH] menu --- Assets/Prefabs/Menu.meta | 8 + Assets/Prefabs/Menu/Menu.prefab | 78 +++++++ Assets/Prefabs/Menu/Menu.prefab.meta | 7 + Assets/Scenes/sr_junglism/sr_junglism.unity | 80 ++++++++ .../New Lighting Settings.lighting | 2 +- ...erStorage.unity => sr_silverstorage.unity} | 191 +++++++----------- ...unity.meta => sr_silverstorage.unity.meta} | 0 Assets/Src/ShipControls.cs | 5 + Assets/Src/UI/MenuControls.cs | 21 +- Assets/Src/UI/MenuUi.cs | 35 ++++ Assets/Src/UI/MenuUi.cs.meta | 11 + Assets/Src/UI/ShipUi.cs | 8 +- Assets/UI Toolkit/Menu.uxml | 8 +- ProjectSettings/EditorBuildSettings.asset | 7 +- ProjectSettings/ProjectSettings.asset | 3 +- 15 files changed, 339 insertions(+), 125 deletions(-) create mode 100644 Assets/Prefabs/Menu.meta create mode 100644 Assets/Prefabs/Menu/Menu.prefab create mode 100644 Assets/Prefabs/Menu/Menu.prefab.meta rename Assets/Scenes/sr_silverstorage/{SilverStorage.unity => sr_silverstorage.unity} (93%) rename Assets/Scenes/sr_silverstorage/{SilverStorage.unity.meta => sr_silverstorage.unity.meta} (100%) create mode 100644 Assets/Src/UI/MenuUi.cs create mode 100644 Assets/Src/UI/MenuUi.cs.meta diff --git a/Assets/Prefabs/Menu.meta b/Assets/Prefabs/Menu.meta new file mode 100644 index 0000000..dba45e3 --- /dev/null +++ b/Assets/Prefabs/Menu.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8c78e70010d5a83b29f78e0d50fa18e5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Menu/Menu.prefab b/Assets/Prefabs/Menu/Menu.prefab new file mode 100644 index 0000000..983009d --- /dev/null +++ b/Assets/Prefabs/Menu/Menu.prefab @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3221660762140721390 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9074617566735061565} + - component: {fileID: 5731929726813851803} + - component: {fileID: 5313449993149091347} + - component: {fileID: 3459824902519845831} + m_Layer: 0 + m_Name: Menu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &9074617566735061565 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3221660762140721390} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5731929726813851803 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3221660762140721390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PanelSettings: {fileID: 11400000, guid: dab173ab15446054bb709b9a7ab085b6, type: 2} + m_ParentUI: {fileID: 0} + sourceAsset: {fileID: 9197481963319205126, guid: 59e6af4d391d177a8910e7a8ab6e05e6, type: 3} + m_SortingOrder: 0 +--- !u!114 &5313449993149091347 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3221660762140721390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b7da082ca2a8e6ee9a5b1151245f535f, type: 3} + m_Name: + m_EditorClassIdentifier: + timingDoc: {fileID: 0} + shipControls: {fileID: 0} +--- !u!114 &3459824902519845831 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3221660762140721390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: af1d31f9c950ece1e852a40ebd6c45a2, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/Menu/Menu.prefab.meta b/Assets/Prefabs/Menu/Menu.prefab.meta new file mode 100644 index 0000000..a7e6977 --- /dev/null +++ b/Assets/Prefabs/Menu/Menu.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ebed5434f18ca13e38d2d7bfcc18d6c3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/sr_junglism/sr_junglism.unity b/Assets/Scenes/sr_junglism/sr_junglism.unity index be0a3ce..9bc4751 100644 --- a/Assets/Scenes/sr_junglism/sr_junglism.unity +++ b/Assets/Scenes/sr_junglism/sr_junglism.unity @@ -10024,6 +10024,75 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 73ab56de058af21389c312279181f856, type: 3} +--- !u!1001 &327871849 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3221660762140721390, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_Name + value: Menu + objectReference: {fileID: 0} + - target: {fileID: 5313449993149091347, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: timingDoc + value: + objectReference: {fileID: 766862836} + - target: {fileID: 5313449993149091347, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: shipControls + value: + objectReference: {fileID: 1972710421} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} --- !u!1001 &328429983 PrefabInstance: m_ObjectHideFlags: 0 @@ -22611,6 +22680,17 @@ Transform: m_CorrespondingSourceObject: {fileID: 4743817676494260426, guid: dcb64e3a91f1fec7ab6098f4f407830b, type: 3} m_PrefabInstance: {fileID: 766862834} m_PrefabAsset: {fileID: 0} +--- !u!114 &766862836 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 957429026670911964, guid: dcb64e3a91f1fec7ab6098f4f407830b, type: 3} + m_PrefabInstance: {fileID: 766862834} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &767277666 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/sr_silverstorage/New Lighting Settings.lighting b/Assets/Scenes/sr_silverstorage/New Lighting Settings.lighting index a089b9f..484e17f 100644 --- a/Assets/Scenes/sr_silverstorage/New Lighting Settings.lighting +++ b/Assets/Scenes/sr_silverstorage/New Lighting Settings.lighting @@ -8,7 +8,7 @@ LightingSettings: m_PrefabAsset: {fileID: 0} m_Name: New Lighting Settings serializedVersion: 6 - m_GIWorkflowMode: 0 + m_GIWorkflowMode: 1 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 0 m_RealtimeEnvironmentLighting: 1 diff --git a/Assets/Scenes/sr_silverstorage/SilverStorage.unity b/Assets/Scenes/sr_silverstorage/sr_silverstorage.unity similarity index 93% rename from Assets/Scenes/sr_silverstorage/SilverStorage.unity rename to Assets/Scenes/sr_silverstorage/sr_silverstorage.unity index 1dffb0c..e653455 100644 --- a/Assets/Scenes/sr_silverstorage/SilverStorage.unity +++ b/Assets/Scenes/sr_silverstorage/sr_silverstorage.unity @@ -172,54 +172,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &114959033 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 114959034} - - component: {fileID: 114959035} - m_Layer: 0 - m_Name: MenuDoc - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 2147483647 - m_IsActive: 1 ---- !u!4 &114959034 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114959033} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1914996160} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &114959035 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114959033} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_PanelSettings: {fileID: 11400000, guid: dab173ab15446054bb709b9a7ab085b6, type: 2} - m_ParentUI: {fileID: 0} - sourceAsset: {fileID: 9197481963319205126, guid: 59e6af4d391d177a8910e7a8ab6e05e6, type: 3} - m_SortingOrder: 0 --- !u!1001 &339815783 PrefabInstance: m_ObjectHideFlags: 0 @@ -545,7 +497,7 @@ Light: serializedVersion: 2 m_Bits: 4294967295 m_RenderingLayerMask: 1 - m_Lightmapping: 1 + m_Lightmapping: 4 m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 @@ -602,10 +554,18 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 965851724} m_Modifications: + - target: {fileID: 957429026670911964, guid: dcb64e3a91f1fec7ab6098f4f407830b, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2603084029878042569, guid: dcb64e3a91f1fec7ab6098f4f407830b, type: 3} propertyPath: m_Name value: Timing objectReference: {fileID: 0} + - target: {fileID: 2603084029878042569, guid: dcb64e3a91f1fec7ab6098f4f407830b, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2603084029878042569, guid: dcb64e3a91f1fec7ab6098f4f407830b, type: 3} propertyPath: m_StaticEditorFlags value: 2147483647 @@ -1050,54 +1010,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1914996159 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1914996160} - - component: {fileID: 1914996162} - m_Layer: 0 - m_Name: Menu - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 2147483647 - m_IsActive: 1 ---- !u!4 &1914996160 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1914996159} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 114959034} - m_Father: {fileID: 0} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1914996162 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1914996159} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b7da082ca2a8e6ee9a5b1151245f535f, type: 3} - m_Name: - m_EditorClassIdentifier: - menuDoc: {fileID: 114959035} - timingDoc: {fileID: 1705992920} - shipControls: {fileID: 1972710421} --- !u!1 &1972710416 GameObject: m_ObjectHideFlags: 0 @@ -1114,7 +1026,6 @@ GameObject: - component: {fileID: 1972710421} - component: {fileID: 1972710424} - component: {fileID: 1972710425} - - component: {fileID: 1972710426} m_Layer: 10 m_Name: Ship m_TagString: Untagged @@ -1321,21 +1232,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 0cee35157fdc2b133bf69416f2db2ac3, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &1972710426 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1972710416} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 --- !u!1 &2129212232 GameObject: m_ObjectHideFlags: 0 @@ -1494,6 +1390,75 @@ LookAtConstraint: m_Sources: - sourceTransform: {fileID: 2129212233} weight: 1 +--- !u!1001 &656092325660581143 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3221660762140721390, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_Name + value: Menu + objectReference: {fileID: 0} + - target: {fileID: 5313449993149091347, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: timingDoc + value: + objectReference: {fileID: 1705992920} + - target: {fileID: 5313449993149091347, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: shipControls + value: + objectReference: {fileID: 1972710421} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9074617566735061565, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ebed5434f18ca13e38d2d7bfcc18d6c3, type: 3} --- !u!1001 &1029791531313142756 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/sr_silverstorage/SilverStorage.unity.meta b/Assets/Scenes/sr_silverstorage/sr_silverstorage.unity.meta similarity index 100% rename from Assets/Scenes/sr_silverstorage/SilverStorage.unity.meta rename to Assets/Scenes/sr_silverstorage/sr_silverstorage.unity.meta diff --git a/Assets/Src/ShipControls.cs b/Assets/Src/ShipControls.cs index 7ba8e86..3e33810 100755 --- a/Assets/Src/ShipControls.cs +++ b/Assets/Src/ShipControls.cs @@ -65,6 +65,11 @@ public class ShipControls : MonoBehaviour, SpaceRaceInput.IShipActions { decelerateAction = input.FindAction("decelerate"); } + void OnDestroy() { + input.ship.RemoveCallbacks(this); + } + + void Update() { // to minimise input lag we poll for the thrust vector every frame and set it thrust = getThrust(); diff --git a/Assets/Src/UI/MenuControls.cs b/Assets/Src/UI/MenuControls.cs index 6ae3a3c..54fb8bd 100644 --- a/Assets/Src/UI/MenuControls.cs +++ b/Assets/Src/UI/MenuControls.cs @@ -3,7 +3,6 @@ using UnityEngine.UIElements; using UnityEngine.InputSystem; public class MenuControls : MonoBehaviour, SpaceRaceInput.IMenuActions { - [SerializeField] UIDocument menuDoc; [SerializeField] @@ -12,27 +11,43 @@ public class MenuControls : MonoBehaviour, SpaceRaceInput.IMenuActions { [SerializeField] ShipControls shipControls; + MenuUi menuUi; + SpaceRaceInput input; bool visible = false; - void Start() { + void Awake() { + menuDoc = GetComponent(); + if (input == null) { input = new SpaceRaceInput(); input.menu.SetCallbacks(this); } input.menu.Enable(); + + menuUi = GetComponent(); + if (!menuUi) { + Debug.LogError("No MenuUI"); + return; + } + + Hide(); } + void OnDestroy() { + input.menu.RemoveCallbacks(this); + } + void Show() { visible = true; UnityEngine.Cursor.lockState = CursorLockMode.None; menuDoc.enabled = true; + menuUi.AddTracks(); // take control off the ship timingDoc.enabled = false; shipControls.enabled = false; - } void Hide() { diff --git a/Assets/Src/UI/MenuUi.cs b/Assets/Src/UI/MenuUi.cs new file mode 100644 index 0000000..1228e37 --- /dev/null +++ b/Assets/Src/UI/MenuUi.cs @@ -0,0 +1,35 @@ +using UnityEngine; +using UnityEngine.UIElements; +using UnityEngine.SceneManagement; + +using System.IO; + +public class MenuUi : MonoBehaviour { + UIDocument uiDocument; + VisualElement tracks; + + void Start() { + uiDocument = GetComponent(); + } + + public void AddTracks() { + tracks = uiDocument.rootVisualElement.Q("tracks"); + tracks.Clear(); + + for (int i = 0; i < SceneManager.sceneCountInBuildSettings; ++i) { + int j = i; // top kek + Scene scene = SceneManager.GetSceneByBuildIndex(i); + string scenePath = SceneUtility.GetScenePathByBuildIndex(i); + string sceneName = Path.GetFileNameWithoutExtension(scenePath); + Button button = new Button(); + button.text = sceneName; + button.clicked += () => LoadScene(j); + tracks.Add(button); + } + } + + void LoadScene(int i) { + Debug.Log($"Loading scene {i}"); + SceneManager.LoadScene(i); + } +} diff --git a/Assets/Src/UI/MenuUi.cs.meta b/Assets/Src/UI/MenuUi.cs.meta new file mode 100644 index 0000000..805b0f8 --- /dev/null +++ b/Assets/Src/UI/MenuUi.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: af1d31f9c950ece1e852a40ebd6c45a2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Src/UI/ShipUi.cs b/Assets/Src/UI/ShipUi.cs index 9f507c6..87ea9a0 100644 --- a/Assets/Src/UI/ShipUi.cs +++ b/Assets/Src/UI/ShipUi.cs @@ -20,7 +20,7 @@ public class ShipUi : MonoBehaviour { VisualElement sectors; VisualElement timeSheet; - void OnEnable() { + void Awake() { speed = uiDocument.rootVisualElement.Q