From c5a6f3f9155908b3a438605f58bf18538c0f3922 Mon Sep 17 00:00:00 2001 From: JaXt0r <120568393+JaXt0r@users.noreply.github.com> Date: Sun, 17 Nov 2024 13:01:11 +0100 Subject: [PATCH 1/6] feat(QuestLog): Can be grabbed from right chest. --- .../Prefabs/Menus/QuestLogMenu.prefab | 15 - .../UnZENity-Lab/Scripts/LabBootstrapper.cs | 5 +- .../VR/GUZ-VR-QuestLog-Socketable.asset | 48 + .../VR/GUZ-VR-QuestLog-Socketable.asset.meta | 8 + .../Resources/VR/Prefabs/Player.prefab | 872 +++++++++++++++++- 5 files changed, 917 insertions(+), 31 deletions(-) create mode 100644 Assets/UnZENity-VR/Resources/VR/GUZ-VR-QuestLog-Socketable.asset create mode 100644 Assets/UnZENity-VR/Resources/VR/GUZ-VR-QuestLog-Socketable.asset.meta diff --git a/Assets/UnZENity-Core/Resources/Prefabs/Menus/QuestLogMenu.prefab b/Assets/UnZENity-Core/Resources/Prefabs/Menus/QuestLogMenu.prefab index b5a1cb51..158c59b6 100644 --- a/Assets/UnZENity-Core/Resources/Prefabs/Menus/QuestLogMenu.prefab +++ b/Assets/UnZENity-Core/Resources/Prefabs/Menus/QuestLogMenu.prefab @@ -112,7 +112,6 @@ GameObject: m_Component: - component: {fileID: 2282871596405899006} - component: {fileID: 4108233323533120742} - - component: {fileID: 4428335579734347645} m_Layer: 0 m_Name: QuestLogMenu m_TagString: Untagged @@ -150,20 +149,6 @@ MonoBehaviour: m_EditorClassIdentifier: _canvas: {fileID: 4377388513586376009} _background: {fileID: 7348004100775829510} ---- !u!114 &4428335579734347645 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8412591900964177680} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 259b3da9f06f4b7791b2297e57967369, type: 3} - m_Name: - m_EditorClassIdentifier: - _elementsToFilter: [] - _audioSource: {fileID: 0} --- !u!1001 &4136749761303385679 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/UnZENity-Lab/Scripts/LabBootstrapper.cs b/Assets/UnZENity-Lab/Scripts/LabBootstrapper.cs index 74c9bb50..38d17b3f 100644 --- a/Assets/UnZENity-Lab/Scripts/LabBootstrapper.cs +++ b/Assets/UnZENity-Lab/Scripts/LabBootstrapper.cs @@ -102,14 +102,13 @@ private void InitManager() private void InitLab() { - - GuzBootstrapper.BootGothicUnZeNity(Config, _settings.Gothic1Path); - GameContext.InteractionAdapter.CreatePlayerController(SceneManager.GetActiveScene()); GameContext.InteractionAdapter.CreateVRDeviceSimulator(); // TODO - Broken. Fix before use. // NpcHelper.CacheHero(); + GuzBootstrapper.BootGothicUnZeNity(Config, _settings.Gothic1Path); + LabNpcAnimationHandler.Bootstrap(); LabMusicHandler.Bootstrap(); LabSoundHandler.Bootstrap(); diff --git a/Assets/UnZENity-VR/Resources/VR/GUZ-VR-QuestLog-Socketable.asset b/Assets/UnZENity-VR/Resources/VR/GUZ-VR-QuestLog-Socketable.asset new file mode 100644 index 00000000..f60cc4bb --- /dev/null +++ b/Assets/UnZENity-VR/Resources/VR/GUZ-VR-QuestLog-Socketable.asset @@ -0,0 +1,48 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 97ec8575e5e09a146a23021088dea0bd, type: 3} + m_Name: GUZ-VR-QuestLog-Socketable + m_EditorClassIdentifier: + _socketables: + - QuestLog + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + Identifier: GUZ-VR-QuestLog-Socketable diff --git a/Assets/UnZENity-VR/Resources/VR/GUZ-VR-QuestLog-Socketable.asset.meta b/Assets/UnZENity-VR/Resources/VR/GUZ-VR-QuestLog-Socketable.asset.meta new file mode 100644 index 00000000..658112f8 --- /dev/null +++ b/Assets/UnZENity-VR/Resources/VR/GUZ-VR-QuestLog-Socketable.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7491fb0fa49dd9947a2be2aa189ab0a6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UnZENity-VR/Resources/VR/Prefabs/Player.prefab b/Assets/UnZENity-VR/Resources/VR/Prefabs/Player.prefab index 947c9e4a..539befb1 100644 --- a/Assets/UnZENity-VR/Resources/VR/Prefabs/Player.prefab +++ b/Assets/UnZENity-VR/Resources/VR/Prefabs/Player.prefab @@ -282,6 +282,298 @@ Transform: - {fileID: 197591293400958876} m_Father: {fileID: 8283658960366426537} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1756681731130342920 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2967521116594414151} + - component: {fileID: 4435517399556552532} + - component: {fileID: 5536549584137114564} + - component: {fileID: 462656534005740388} + - component: {fileID: 3941763427768878883} + - component: {fileID: 8025841988004116119} + - component: {fileID: 5947821544717835948} + m_Layer: 0 + m_Name: GrabbableCollider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2967521116594414151 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1756681731130342920} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4340702920753724554} + m_Father: {fileID: 1971522072599256673} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4435517399556552532 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1756681731130342920} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &5536549584137114564 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1756681731130342920} + m_Enabled: 0 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &462656534005740388 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1756681731130342920} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &3941763427768878883 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1756681731130342920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6ebc937e678155e4d86feeb9248cca97, type: 3} + m_Name: + m_EditorClassIdentifier: + GrabBehaviour: 0 + PoseType: 0 + TrackingType: 0 + HoldType: 1 + GrabControl: 0 + OverrideGrabTrigger: 0 + GrabTrigger: 0 + RequireLineOfSight: 1 + PoseImmediately: 0 + ParentHandModel: 0 + BreakDistance: 1 + BreakDistanceSource: 0 + Stationary: 0 + ReleasedAngularConversionFactor: 0 + ReleasedVelocityFactor: 1 + ReleasedAngularFactor: 1 + GrabIndicator: {fileID: 0} + ForceGrabIndicator: {fileID: 0} + ShowGrabIndicator: 1 + ShowTriggerGrabIndicator: 1 + ShowForceGrabIndicator: 1 + ForceGrabbable: 1 + ForcePullOverride: {fileID: 0} + JointOverride: {fileID: 0} + OneHandStrength: {fileID: 0} + TwoHandStrength: {fileID: 0} + PullingSettingsOverride: {fileID: 0} + HandGrabbedClip: {fileID: 0} + SocketGrabPoints: [] + Rigidbody: {fileID: 0} + AutoApplyLayer: 1 + RequireOverlapClearance: 0 + OverlapTimeout: 0.1 + FinalJointMaxAngle: 15 + FinalJointTimeout: 0.25 + CollisionParents: [] + ExtraIgnoreCollisionParents: [] + GrabColliders: [] + ConsiderGrabPointAngle: 1 + UseColliderClosestPoint: 1 + DisableHandCollision: 0 + AllowMultiplayerSwap: 0 + MasterGrabbable: {fileID: 0} + LinkedGrabbables: [] + CollisionDetection: 2 + PhysicsPoserFallback: 1 + OverrideMaxDistanceBehaviour: 0 + MaxDistanceBehaviour: 0 + OneHandJointSettings: {fileID: 0} + TwoHandJointSettings: {fileID: 0} + StartingSocket: {fileID: 2289746830672541467} + LinkStartingSocket: 0 + ShowBoundingBox: 0 + DrawCenterOfMass: 0 + GrabPoints: [] + Deactivated: + m_PersistentCalls: + m_Calls: [] + Activated: + m_PersistentCalls: + m_Calls: [] + Grabbed: + m_PersistentCalls: + m_Calls: [] + Released: + m_PersistentCalls: + m_Calls: [] + HoverEnter: + m_PersistentCalls: + m_Calls: [] + HoverExit: + m_PersistentCalls: + m_Calls: [] + Collided: + m_PersistentCalls: + m_Calls: [] + Destroyed: + m_PersistentCalls: + m_Calls: [] + HandGrabbed: + m_PersistentCalls: + m_Calls: [] + HandReleased: + m_PersistentCalls: + m_Calls: [] + HandFullReleased: + m_PersistentCalls: + m_Calls: [] + Socketed: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6281573781719795044} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + UnSocketed: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1914106400078935698} + m_TargetAssemblyTypeName: GUZ.Core.UI.QuestLogMenu, UnZENity.Core + m_MethodName: SetVisible + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + DistanceGrabbed: + m_PersistentCalls: + m_Calls: [] + DistanceReleased: + m_PersistentCalls: + m_Calls: [] + GrabPointsMeta: [] + Grabbers: [] + HandGrabbers: [] + Stabbers: [] + Stabbable: {fileID: 0} +--- !u!114 &8025841988004116119 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1756681731130342920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 96785e435f4a7a04d84021e497eeb783, type: 3} + m_Name: + m_EditorClassIdentifier: + Socket: {fileID: 2289746830672541467} + ReturnTime: 0 + PlaySocketedSFX: 1 +--- !u!54 &5947821544717835948 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1756681731130342920} + serializedVersion: 4 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 --- !u!1 &1771802868367850945 GameObject: m_ObjectHideFlags: 0 @@ -625,6 +917,159 @@ Transform: - {fileID: 6750630581594608228} m_Father: {fileID: 8461230000596305563} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3385770110142091308 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2814229083861490522} + - component: {fileID: 3984520596084198506} + - component: {fileID: 6861258798072676336} + - component: {fileID: 5973380522229945093} + - component: {fileID: 6364537753863659288} + m_Layer: 0 + m_Name: Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2814229083861490522 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3385770110142091308} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3976091813422059602} + m_Father: {fileID: 2674641414752928581} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3984520596084198506 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3385770110142091308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d924166925eb40e2be6e7d5a2f425dcf, type: 3} + m_Name: + m_EditorClassIdentifier: + BeforeGrabbed: + m_PersistentCalls: + m_Calls: [] + Grabbed: + m_PersistentCalls: + m_Calls: [] + Released: + m_PersistentCalls: + m_Calls: [] + BeforeHoverEnter: + m_PersistentCalls: + m_Calls: [] + HoverEnter: + m_PersistentCalls: + m_Calls: [] + HoverExit: + m_PersistentCalls: + m_Calls: [] + _grabBag: {fileID: 0} + GrabBags: [] + GrabControl: 0 + GrabDetectionType: 1 + CheckHandOverlap: 0 + ReleasesOnHover: 0 + InstantHandPose: 1 + HoldType: 0 + AutoSpawnPrefab: {fileID: 0} + GrabTimeout: 0 + GrabbableMustBeHeld: 1 + GrabsFromHand: 0 + HoverActions: [] + HandGrabActions: + - {fileID: 6861258798072676336} + ParentDisablesGrab: 0 + ParentGrabbable: {fileID: 0} + CanRemoveGrabbable: 1 + ScaleGrabbable: 0 + Size: 0 + CanGrabStabbingGrabbable: 0 + AudioGrabbedOverride: {fileID: 0} + AudioReleasedOverride: {fileID: 0} + AudioGrabbedFallback: {fileID: 0} + AudioReleasedFallback: {fileID: 0} + SocketFilters: [] + FilterCondition: 0 + DistanceSource: {fileID: 0} + PoseTag: + DisableCollision: 1 + SpawnedPrefab: + m_PersistentCalls: + m_Calls: [] + DebugScale: 0 +--- !u!114 &6861258798072676336 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3385770110142091308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d4f9954f3bc24c2faf5b2e22c0fd3a52, type: 3} + m_Name: + m_EditorClassIdentifier: + Target: {fileID: 3976091813422059602} + Scale: {x: 1.7, y: 1.7, z: 1.7} + ScaleTime: 0.25 + ScaleIfInvalid: 0 +--- !u!135 &5973380522229945093 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3385770110142091308} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 1 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.15 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &6364537753863659288 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3385770110142091308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: af97aaea961eea14d9a15026f363c312, type: 3} + m_Name: + m_EditorClassIdentifier: + Tags: + Tags: {fileID: 0} + _data: 4 + Any: 1 --- !u!1 &3615112505321512136 GameObject: m_ObjectHideFlags: 0 @@ -667,12 +1112,95 @@ MonoBehaviour: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3615112505321512136} + m_GameObject: {fileID: 3615112505321512136} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d33b9b45f9124f6b8afdb52a10613db0, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &3868171419879158818 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3976091813422059602} + - component: {fileID: 7221583958086227672} + - component: {fileID: 8162079359010379604} + m_Layer: 0 + m_Name: Ring + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3976091813422059602 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3868171419879158818} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2814229083861490522} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!33 &7221583958086227672 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3868171419879158818} + m_Mesh: {fileID: -4126568152517062684, guid: 139a1d2404f43d640bbe1edb9c53b7bf, type: 3} +--- !u!23 &8162079359010379604 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3868171419879158818} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d33b9b45f9124f6b8afdb52a10613db0, type: 3} - m_Name: - m_EditorClassIdentifier: + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: ed62fd8c2ff959c4197d53dc44e3fa41, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &4061284952118665767 GameObject: m_ObjectHideFlags: 0 @@ -774,6 +1302,276 @@ Transform: - {fileID: 7147928086921161637} m_Father: {fileID: 8283658960366426537} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5016030055340920199 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1971522072599256673} + - component: {fileID: 2289746830672541467} + - component: {fileID: 1867222836193955276} + - component: {fileID: 7051617042746407425} + - component: {fileID: 1434065900836693905} + - component: {fileID: 2522415972860961756} + m_Layer: 0 + m_Name: Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1971522072599256673 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5016030055340920199} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2967521116594414151} + m_Father: {fileID: 2674641414752928581} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2289746830672541467 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5016030055340920199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a27bb777100ada4459dda04ca3779632, type: 3} + m_Name: + m_EditorClassIdentifier: + BeforeGrabbed: + m_PersistentCalls: + m_Calls: [] + Grabbed: + m_PersistentCalls: + m_Calls: [] + Released: + m_PersistentCalls: + m_Calls: [] + BeforeHoverEnter: + m_PersistentCalls: + m_Calls: [] + HoverEnter: + m_PersistentCalls: + m_Calls: [] + HoverExit: + m_PersistentCalls: + m_Calls: [] + _grabBag: {fileID: 0} + GrabBags: [] + GrabControl: 0 + GrabDetectionType: 1 + CheckHandOverlap: 0 + ReleasesOnHover: 0 + InstantHandPose: 0 + HoldType: 0 + AutoSpawnPrefab: {fileID: 0} + GrabTimeout: 0 + GrabbableMustBeHeld: 1 + GrabsFromHand: 0 + HoverActions: [] + HandGrabActions: [] + ParentDisablesGrab: 0 + ParentGrabbable: {fileID: 0} + CanRemoveGrabbable: 1 + ScaleGrabbable: 0 + Size: 0 + CanGrabStabbingGrabbable: 0 + AudioGrabbedOverride: {fileID: 0} + AudioReleasedOverride: {fileID: 0} + AudioGrabbedFallback: {fileID: 0} + AudioReleasedFallback: {fileID: 0} + SocketFilters: [] + FilterCondition: 0 + DistanceSource: {fileID: 0} + PoseTag: + DisableCollision: 1 + SpawnedPrefab: + m_PersistentCalls: + m_Calls: [] + DebugScale: 0 +--- !u!114 &1867222836193955276 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5016030055340920199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d4f9954f3bc24c2faf5b2e22c0fd3a52, type: 3} + m_Name: + m_EditorClassIdentifier: + Target: {fileID: 0} + Scale: {x: 1.7, y: 1.7, z: 1.7} + ScaleTime: 0.25 + ScaleIfInvalid: 0 +--- !u!135 &7051617042746407425 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5016030055340920199} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 1 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.15 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &1434065900836693905 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5016030055340920199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6ebc937e678155e4d86feeb9248cca97, type: 3} + m_Name: + m_EditorClassIdentifier: + GrabBehaviour: 0 + PoseType: 0 + TrackingType: 0 + HoldType: 1 + GrabControl: 0 + OverrideGrabTrigger: 0 + GrabTrigger: 0 + RequireLineOfSight: 1 + PoseImmediately: 0 + ParentHandModel: 0 + BreakDistance: 1 + BreakDistanceSource: 0 + Stationary: 0 + ReleasedAngularConversionFactor: 0 + ReleasedVelocityFactor: 1 + ReleasedAngularFactor: 1 + GrabIndicator: {fileID: 0} + ForceGrabIndicator: {fileID: 0} + ShowGrabIndicator: 1 + ShowTriggerGrabIndicator: 1 + ShowForceGrabIndicator: 1 + ForceGrabbable: 1 + ForcePullOverride: {fileID: 0} + JointOverride: {fileID: 0} + OneHandStrength: {fileID: 0} + TwoHandStrength: {fileID: 0} + PullingSettingsOverride: {fileID: 0} + HandGrabbedClip: {fileID: 0} + SocketGrabPoints: [] + Rigidbody: {fileID: 0} + AutoApplyLayer: 1 + RequireOverlapClearance: 0 + OverlapTimeout: 0.1 + FinalJointMaxAngle: 15 + FinalJointTimeout: 0.25 + CollisionParents: [] + ExtraIgnoreCollisionParents: [] + GrabColliders: [] + ConsiderGrabPointAngle: 1 + UseColliderClosestPoint: 1 + DisableHandCollision: 0 + AllowMultiplayerSwap: 0 + MasterGrabbable: {fileID: 0} + LinkedGrabbables: [] + CollisionDetection: 2 + PhysicsPoserFallback: 1 + OverrideMaxDistanceBehaviour: 0 + MaxDistanceBehaviour: 0 + OneHandJointSettings: {fileID: 0} + TwoHandJointSettings: {fileID: 0} + StartingSocket: {fileID: 0} + LinkStartingSocket: 0 + ShowBoundingBox: 0 + DrawCenterOfMass: 0 + GrabPoints: [] + Deactivated: + m_PersistentCalls: + m_Calls: [] + Activated: + m_PersistentCalls: + m_Calls: [] + Grabbed: + m_PersistentCalls: + m_Calls: [] + Released: + m_PersistentCalls: + m_Calls: [] + HoverEnter: + m_PersistentCalls: + m_Calls: [] + HoverExit: + m_PersistentCalls: + m_Calls: [] + Collided: + m_PersistentCalls: + m_Calls: [] + Destroyed: + m_PersistentCalls: + m_Calls: [] + HandGrabbed: + m_PersistentCalls: + m_Calls: [] + HandReleased: + m_PersistentCalls: + m_Calls: [] + HandFullReleased: + m_PersistentCalls: + m_Calls: [] + Socketed: + m_PersistentCalls: + m_Calls: [] + UnSocketed: + m_PersistentCalls: + m_Calls: [] + DistanceGrabbed: + m_PersistentCalls: + m_Calls: [] + DistanceReleased: + m_PersistentCalls: + m_Calls: [] + GrabPointsMeta: [] + Grabbers: [] + HandGrabbers: [] + Stabbers: [] + Stabbable: {fileID: 0} +--- !u!114 &2522415972860961756 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5016030055340920199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: af97aaea961eea14d9a15026f363c312, type: 3} + m_Name: + m_EditorClassIdentifier: + Tags: + Tags: {fileID: 11400000, guid: 7491fb0fa49dd9947a2be2aa189ab0a6, type: 2} + _data: 0 + Any: 1 --- !u!1 &5544189433757102005 GameObject: m_ObjectHideFlags: 0 @@ -804,7 +1602,6 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 3807910639500129113} - - {fileID: 4340702920753724554} m_Father: {fileID: 8391885030387849268} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &6311541220095459959 @@ -1188,6 +1985,39 @@ Transform: - {fileID: 2208573472808212865} m_Father: {fileID: 5374531545646187458} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7497688722745173449 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2674641414752928581} + m_Layer: 8 + m_Name: Chest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2674641414752928581 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7497688722745173449} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2814229083861490522} + - {fileID: 1971522072599256673} + m_Father: {fileID: 8391885030387849268} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &7645197625815463301 GameObject: m_ObjectHideFlags: 0 @@ -3119,6 +3949,9 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 7486009837194656688, guid: a0de35f4e16efb54ba0281586c17416f, type: 3} insertIndex: -1 addedObject: {fileID: 6662851528454043594} + - targetCorrespondingSourceObject: {fileID: 7486009837194656688, guid: a0de35f4e16efb54ba0281586c17416f, type: 3} + insertIndex: -1 + addedObject: {fileID: 2674641414752928581} - targetCorrespondingSourceObject: {fileID: 7486009837306776690, guid: a0de35f4e16efb54ba0281586c17416f, type: 3} insertIndex: -1 addedObject: {fileID: 2426142447982879684} @@ -3879,27 +4712,35 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 6662851528454043594} + m_TransformParent: {fileID: 2967521116594414151} m_Modifications: + - target: {fileID: 2282871596405899006, guid: 24987ed3ef211f040ba3b95ae049cbdd, type: 3} + propertyPath: m_LocalScale.x + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 2282871596405899006, guid: 24987ed3ef211f040ba3b95ae049cbdd, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} - target: {fileID: 2282871596405899006, guid: 24987ed3ef211f040ba3b95ae049cbdd, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - target: {fileID: 2282871596405899006, guid: 24987ed3ef211f040ba3b95ae049cbdd, type: 3} propertyPath: m_LocalPosition.y - value: 1.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 2282871596405899006, guid: 24987ed3ef211f040ba3b95ae049cbdd, type: 3} propertyPath: m_LocalPosition.z - value: 4 + value: 0 objectReference: {fileID: 0} - target: {fileID: 2282871596405899006, guid: 24987ed3ef211f040ba3b95ae049cbdd, type: 3} propertyPath: m_LocalRotation.w - value: 1 + value: 0.7071068 objectReference: {fileID: 0} - target: {fileID: 2282871596405899006, guid: 24987ed3ef211f040ba3b95ae049cbdd, type: 3} propertyPath: m_LocalRotation.x - value: -0 + value: 0.7071068 objectReference: {fileID: 0} - target: {fileID: 2282871596405899006, guid: 24987ed3ef211f040ba3b95ae049cbdd, type: 3} propertyPath: m_LocalRotation.y @@ -3911,7 +4752,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2282871596405899006, guid: 24987ed3ef211f040ba3b95ae049cbdd, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: 0 + value: 90 objectReference: {fileID: 0} - target: {fileID: 2282871596405899006, guid: 24987ed3ef211f040ba3b95ae049cbdd, type: 3} propertyPath: m_LocalEulerAnglesHint.y @@ -3935,7 +4776,7 @@ MonoBehaviour: m_CorrespondingSourceObject: {fileID: 4108233323533120742, guid: 24987ed3ef211f040ba3b95ae049cbdd, type: 3} m_PrefabInstance: {fileID: 2563434196116472436} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} + m_GameObject: {fileID: 6281573781719795044} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 821757cf2eb14533ab7b1b4e169fc161, type: 3} @@ -3946,6 +4787,11 @@ Transform: m_CorrespondingSourceObject: {fileID: 2282871596405899006, guid: 24987ed3ef211f040ba3b95ae049cbdd, type: 3} m_PrefabInstance: {fileID: 2563434196116472436} m_PrefabAsset: {fileID: 0} +--- !u!1 &6281573781719795044 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8412591900964177680, guid: 24987ed3ef211f040ba3b95ae049cbdd, type: 3} + m_PrefabInstance: {fileID: 2563434196116472436} + m_PrefabAsset: {fileID: 0} --- !u!1001 &3801794978164053451 PrefabInstance: m_ObjectHideFlags: 0 From fae235ce4cf06add068906c281d6be56c30f53c5 Mon Sep 17 00:00:00 2001 From: JaXt0r <120568393+JaXt0r@users.noreply.github.com> Date: Sun, 17 Nov 2024 14:14:05 +0100 Subject: [PATCH 2/6] refactor(MenuManagers): Moved to appropriate namespace/folder. --- .../Scripts/{UI => Manager}/FontManager.cs | 0 .../Scripts/{UI => Manager}/FontManager.cs.meta | 0 .../Scripts/{UI => Manager}/TextureManager.cs | 0 .../Scripts/{UI => Manager}/TextureManager.cs.meta | 0 Assets/UnZENity-Core/Scripts/UI/IMenu.cs | 7 +++++++ Assets/UnZENity-Core/Scripts/UI/IMenu.cs.meta | 3 +++ .../Scripts/UI/{MainMenu.meta => Main.meta} | 0 .../UI/{MainMenu => Main}/GameplayMenuHandler.cs | 2 +- .../{MainMenu => Main}/GameplayMenuHandler.cs.meta | 0 .../UI/{MainMenu => Main}/MovementMenuHandler.cs | 2 +- .../{MainMenu => Main}/MovementMenuHandler.cs.meta | 0 .../{Player/Menu => UI/Main}/SaveGameMenu.cs | 2 +- .../{Player/Menu => UI/Main}/SaveGameMenu.cs.meta | 0 .../UI/{MainMenu => Main}/SoundMenuHandler.cs | 2 +- .../UI/{MainMenu => Main}/SoundMenuHandler.cs.meta | 0 .../Scripts/{Player/Menu => UI}/MainMenu.cs | 4 ++-- .../Scripts/{Player/Menu => UI}/MainMenu.cs.meta | 0 Assets/UnZENity-Core/Scripts/UI/QuestLogMenu.cs | 2 +- Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs | 13 +++++++++++++ Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs.meta | 3 +++ 20 files changed, 33 insertions(+), 7 deletions(-) rename Assets/UnZENity-Core/Scripts/{UI => Manager}/FontManager.cs (100%) rename Assets/UnZENity-Core/Scripts/{UI => Manager}/FontManager.cs.meta (100%) rename Assets/UnZENity-Core/Scripts/{UI => Manager}/TextureManager.cs (100%) rename Assets/UnZENity-Core/Scripts/{UI => Manager}/TextureManager.cs.meta (100%) create mode 100644 Assets/UnZENity-Core/Scripts/UI/IMenu.cs create mode 100644 Assets/UnZENity-Core/Scripts/UI/IMenu.cs.meta rename Assets/UnZENity-Core/Scripts/UI/{MainMenu.meta => Main.meta} (100%) rename Assets/UnZENity-Core/Scripts/UI/{MainMenu => Main}/GameplayMenuHandler.cs (96%) rename Assets/UnZENity-Core/Scripts/UI/{MainMenu => Main}/GameplayMenuHandler.cs.meta (100%) rename Assets/UnZENity-Core/Scripts/UI/{MainMenu => Main}/MovementMenuHandler.cs (97%) rename Assets/UnZENity-Core/Scripts/UI/{MainMenu => Main}/MovementMenuHandler.cs.meta (100%) rename Assets/UnZENity-Core/Scripts/{Player/Menu => UI/Main}/SaveGameMenu.cs (99%) rename Assets/UnZENity-Core/Scripts/{Player/Menu => UI/Main}/SaveGameMenu.cs.meta (100%) rename Assets/UnZENity-Core/Scripts/UI/{MainMenu => Main}/SoundMenuHandler.cs (94%) rename Assets/UnZENity-Core/Scripts/UI/{MainMenu => Main}/SoundMenuHandler.cs.meta (100%) rename Assets/UnZENity-Core/Scripts/{Player/Menu => UI}/MainMenu.cs (97%) rename Assets/UnZENity-Core/Scripts/{Player/Menu => UI}/MainMenu.cs.meta (100%) create mode 100644 Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs create mode 100644 Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs.meta diff --git a/Assets/UnZENity-Core/Scripts/UI/FontManager.cs b/Assets/UnZENity-Core/Scripts/Manager/FontManager.cs similarity index 100% rename from Assets/UnZENity-Core/Scripts/UI/FontManager.cs rename to Assets/UnZENity-Core/Scripts/Manager/FontManager.cs diff --git a/Assets/UnZENity-Core/Scripts/UI/FontManager.cs.meta b/Assets/UnZENity-Core/Scripts/Manager/FontManager.cs.meta similarity index 100% rename from Assets/UnZENity-Core/Scripts/UI/FontManager.cs.meta rename to Assets/UnZENity-Core/Scripts/Manager/FontManager.cs.meta diff --git a/Assets/UnZENity-Core/Scripts/UI/TextureManager.cs b/Assets/UnZENity-Core/Scripts/Manager/TextureManager.cs similarity index 100% rename from Assets/UnZENity-Core/Scripts/UI/TextureManager.cs rename to Assets/UnZENity-Core/Scripts/Manager/TextureManager.cs diff --git a/Assets/UnZENity-Core/Scripts/UI/TextureManager.cs.meta b/Assets/UnZENity-Core/Scripts/Manager/TextureManager.cs.meta similarity index 100% rename from Assets/UnZENity-Core/Scripts/UI/TextureManager.cs.meta rename to Assets/UnZENity-Core/Scripts/Manager/TextureManager.cs.meta diff --git a/Assets/UnZENity-Core/Scripts/UI/IMenu.cs b/Assets/UnZENity-Core/Scripts/UI/IMenu.cs new file mode 100644 index 00000000..bde654a1 --- /dev/null +++ b/Assets/UnZENity-Core/Scripts/UI/IMenu.cs @@ -0,0 +1,7 @@ +namespace GUZ.Core.UI +{ + public interface IMenu + { + public void ToggleVisibility(); + } +} diff --git a/Assets/UnZENity-Core/Scripts/UI/IMenu.cs.meta b/Assets/UnZENity-Core/Scripts/UI/IMenu.cs.meta new file mode 100644 index 00000000..19768a2d --- /dev/null +++ b/Assets/UnZENity-Core/Scripts/UI/IMenu.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c400590f45ee4e4b907e19692775b8b7 +timeCreated: 1731849012 \ No newline at end of file diff --git a/Assets/UnZENity-Core/Scripts/UI/MainMenu.meta b/Assets/UnZENity-Core/Scripts/UI/Main.meta similarity index 100% rename from Assets/UnZENity-Core/Scripts/UI/MainMenu.meta rename to Assets/UnZENity-Core/Scripts/UI/Main.meta diff --git a/Assets/UnZENity-Core/Scripts/UI/MainMenu/GameplayMenuHandler.cs b/Assets/UnZENity-Core/Scripts/UI/Main/GameplayMenuHandler.cs similarity index 96% rename from Assets/UnZENity-Core/Scripts/UI/MainMenu/GameplayMenuHandler.cs rename to Assets/UnZENity-Core/Scripts/UI/Main/GameplayMenuHandler.cs index 80f98a49..31787f34 100644 --- a/Assets/UnZENity-Core/Scripts/UI/MainMenu/GameplayMenuHandler.cs +++ b/Assets/UnZENity-Core/Scripts/UI/Main/GameplayMenuHandler.cs @@ -3,7 +3,7 @@ using TMPro; using UnityEngine; -namespace GUZ.Core.UI.MainMenu +namespace GUZ.Core.UI.Main { public class GameplayMenuHandler : MonoBehaviour { diff --git a/Assets/UnZENity-Core/Scripts/UI/MainMenu/GameplayMenuHandler.cs.meta b/Assets/UnZENity-Core/Scripts/UI/Main/GameplayMenuHandler.cs.meta similarity index 100% rename from Assets/UnZENity-Core/Scripts/UI/MainMenu/GameplayMenuHandler.cs.meta rename to Assets/UnZENity-Core/Scripts/UI/Main/GameplayMenuHandler.cs.meta diff --git a/Assets/UnZENity-Core/Scripts/UI/MainMenu/MovementMenuHandler.cs b/Assets/UnZENity-Core/Scripts/UI/Main/MovementMenuHandler.cs similarity index 97% rename from Assets/UnZENity-Core/Scripts/UI/MainMenu/MovementMenuHandler.cs rename to Assets/UnZENity-Core/Scripts/UI/Main/MovementMenuHandler.cs index b3649d91..bee85740 100644 --- a/Assets/UnZENity-Core/Scripts/UI/MainMenu/MovementMenuHandler.cs +++ b/Assets/UnZENity-Core/Scripts/UI/Main/MovementMenuHandler.cs @@ -3,7 +3,7 @@ using UnityEngine; using UnityEngine.UI; -namespace GUZ.Core.UI.MainMenu +namespace GUZ.Core.UI.Main { public class MovementMenuHandler : MonoBehaviour { diff --git a/Assets/UnZENity-Core/Scripts/UI/MainMenu/MovementMenuHandler.cs.meta b/Assets/UnZENity-Core/Scripts/UI/Main/MovementMenuHandler.cs.meta similarity index 100% rename from Assets/UnZENity-Core/Scripts/UI/MainMenu/MovementMenuHandler.cs.meta rename to Assets/UnZENity-Core/Scripts/UI/Main/MovementMenuHandler.cs.meta diff --git a/Assets/UnZENity-Core/Scripts/Player/Menu/SaveGameMenu.cs b/Assets/UnZENity-Core/Scripts/UI/Main/SaveGameMenu.cs similarity index 99% rename from Assets/UnZENity-Core/Scripts/Player/Menu/SaveGameMenu.cs rename to Assets/UnZENity-Core/Scripts/UI/Main/SaveGameMenu.cs index 23e2c4c2..1b5cc9a2 100644 --- a/Assets/UnZENity-Core/Scripts/Player/Menu/SaveGameMenu.cs +++ b/Assets/UnZENity-Core/Scripts/UI/Main/SaveGameMenu.cs @@ -8,7 +8,7 @@ using UnityEngine.SceneManagement; using ZenKit; -namespace GUZ.Core.Player.Menu +namespace GUZ.Core.UI.Main { public class SaveGameMenu : SingletonBehaviour { diff --git a/Assets/UnZENity-Core/Scripts/Player/Menu/SaveGameMenu.cs.meta b/Assets/UnZENity-Core/Scripts/UI/Main/SaveGameMenu.cs.meta similarity index 100% rename from Assets/UnZENity-Core/Scripts/Player/Menu/SaveGameMenu.cs.meta rename to Assets/UnZENity-Core/Scripts/UI/Main/SaveGameMenu.cs.meta diff --git a/Assets/UnZENity-Core/Scripts/UI/MainMenu/SoundMenuHandler.cs b/Assets/UnZENity-Core/Scripts/UI/Main/SoundMenuHandler.cs similarity index 94% rename from Assets/UnZENity-Core/Scripts/UI/MainMenu/SoundMenuHandler.cs rename to Assets/UnZENity-Core/Scripts/UI/Main/SoundMenuHandler.cs index 93b2a447..709c0589 100644 --- a/Assets/UnZENity-Core/Scripts/UI/MainMenu/SoundMenuHandler.cs +++ b/Assets/UnZENity-Core/Scripts/UI/Main/SoundMenuHandler.cs @@ -2,7 +2,7 @@ using UnityEngine; using UnityEngine.UI; -namespace GUZ.Core.UI.MainMenu +namespace GUZ.Core.UI.Main { public class SoundMenuHandler : MonoBehaviour { diff --git a/Assets/UnZENity-Core/Scripts/UI/MainMenu/SoundMenuHandler.cs.meta b/Assets/UnZENity-Core/Scripts/UI/Main/SoundMenuHandler.cs.meta similarity index 100% rename from Assets/UnZENity-Core/Scripts/UI/MainMenu/SoundMenuHandler.cs.meta rename to Assets/UnZENity-Core/Scripts/UI/Main/SoundMenuHandler.cs.meta diff --git a/Assets/UnZENity-Core/Scripts/Player/Menu/MainMenu.cs b/Assets/UnZENity-Core/Scripts/UI/MainMenu.cs similarity index 97% rename from Assets/UnZENity-Core/Scripts/Player/Menu/MainMenu.cs rename to Assets/UnZENity-Core/Scripts/UI/MainMenu.cs index 3dbbf4c1..bea90612 100644 --- a/Assets/UnZENity-Core/Scripts/Player/Menu/MainMenu.cs +++ b/Assets/UnZENity-Core/Scripts/UI/MainMenu.cs @@ -5,9 +5,9 @@ using UnityEngine; using UnityEngine.SceneManagement; -namespace GUZ.Core.Player.Menu +namespace GUZ.Core.Menu { - public class MainMenu : MonoBehaviour + public class MainMenu : MonoBehaviour, IMenu { public GameObject RootMenu; public GameObject LoadMenu; diff --git a/Assets/UnZENity-Core/Scripts/Player/Menu/MainMenu.cs.meta b/Assets/UnZENity-Core/Scripts/UI/MainMenu.cs.meta similarity index 100% rename from Assets/UnZENity-Core/Scripts/Player/Menu/MainMenu.cs.meta rename to Assets/UnZENity-Core/Scripts/UI/MainMenu.cs.meta diff --git a/Assets/UnZENity-Core/Scripts/UI/QuestLogMenu.cs b/Assets/UnZENity-Core/Scripts/UI/QuestLogMenu.cs index 7e2157eb..73db106d 100644 --- a/Assets/UnZENity-Core/Scripts/UI/QuestLogMenu.cs +++ b/Assets/UnZENity-Core/Scripts/UI/QuestLogMenu.cs @@ -29,7 +29,7 @@ namespace GUZ.Core.UI /// Because setting the anchors at runtime (e.g. left-aligned) causes Unity to crash at a certain amount of changes. /// Unfortunately this causes a lot of calculations within this class. But now you know at least. :-) /// - public class QuestLogMenu : MonoBehaviour + public class QuestLogMenu : MonoBehaviour, IMenu { // Menu entries (e.g. text:Current missions) are created dynamically. We therefore use this GO as reference (kind of Prefab). [SerializeField] private GameObject _canvas; diff --git a/Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs b/Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs new file mode 100644 index 00000000..4786b089 --- /dev/null +++ b/Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs @@ -0,0 +1,13 @@ +using System; +using UnityEngine; + +namespace GUZ.Core.UI +{ + public class StatusMenu : MonoBehaviour, IMenu + { + public void ToggleVisibility() + { + throw new NotImplementedException(); + } + } +} diff --git a/Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs.meta b/Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs.meta new file mode 100644 index 00000000..b3e0217f --- /dev/null +++ b/Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ace89b3df366440ca920876e9464148e +timeCreated: 1731848720 \ No newline at end of file From f8ef849d291a84cf3e466d6d46bb962a52534487 Mon Sep 17 00:00:00 2001 From: JaXt0r <120568393+JaXt0r@users.noreply.github.com> Date: Sun, 17 Nov 2024 14:22:06 +0100 Subject: [PATCH 3/6] feat(StatusMenu): Skeleton setup. --- .../UnZENity-Core/Scripts/UI/AbstractMenu.cs | 15 +++++++++++++ .../Scripts/UI/AbstractMenu.cs.meta | 3 +++ Assets/UnZENity-Core/Scripts/UI/IMenu.cs | 7 ------ Assets/UnZENity-Core/Scripts/UI/IMenu.cs.meta | 3 --- .../UnZENity-Core/Scripts/UI/QuestLogMenu.cs | 1 - Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs | 22 +++++++++++++++---- .../HVROverrides/VRPlayerController.cs | 11 +++++++--- .../Components/HVROverrides/VRPlayerInputs.cs | 20 ++++++++++++++++- .../HVROverrides/VRSimulatorControlsGUI.cs | 3 ++- 9 files changed, 65 insertions(+), 20 deletions(-) create mode 100644 Assets/UnZENity-Core/Scripts/UI/AbstractMenu.cs create mode 100644 Assets/UnZENity-Core/Scripts/UI/AbstractMenu.cs.meta delete mode 100644 Assets/UnZENity-Core/Scripts/UI/IMenu.cs delete mode 100644 Assets/UnZENity-Core/Scripts/UI/IMenu.cs.meta diff --git a/Assets/UnZENity-Core/Scripts/UI/AbstractMenu.cs b/Assets/UnZENity-Core/Scripts/UI/AbstractMenu.cs new file mode 100644 index 00000000..996809e8 --- /dev/null +++ b/Assets/UnZENity-Core/Scripts/UI/AbstractMenu.cs @@ -0,0 +1,15 @@ +using UnityEngine; + +namespace GUZ.Core.UnZENity_Core.Scripts.UI +{ + public abstract class AbstractMenu : MonoBehaviour + { + public abstract void ToggleVisibility(); + + + protected void CreateRootElements() + { + + } + } +} diff --git a/Assets/UnZENity-Core/Scripts/UI/AbstractMenu.cs.meta b/Assets/UnZENity-Core/Scripts/UI/AbstractMenu.cs.meta new file mode 100644 index 00000000..2592de8a --- /dev/null +++ b/Assets/UnZENity-Core/Scripts/UI/AbstractMenu.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0cc604b48951478fb29713a061e1e735 +timeCreated: 1731849412 \ No newline at end of file diff --git a/Assets/UnZENity-Core/Scripts/UI/IMenu.cs b/Assets/UnZENity-Core/Scripts/UI/IMenu.cs deleted file mode 100644 index bde654a1..00000000 --- a/Assets/UnZENity-Core/Scripts/UI/IMenu.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace GUZ.Core.UI -{ - public interface IMenu - { - public void ToggleVisibility(); - } -} diff --git a/Assets/UnZENity-Core/Scripts/UI/IMenu.cs.meta b/Assets/UnZENity-Core/Scripts/UI/IMenu.cs.meta deleted file mode 100644 index 19768a2d..00000000 --- a/Assets/UnZENity-Core/Scripts/UI/IMenu.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: c400590f45ee4e4b907e19692775b8b7 -timeCreated: 1731849012 \ No newline at end of file diff --git a/Assets/UnZENity-Core/Scripts/UI/QuestLogMenu.cs b/Assets/UnZENity-Core/Scripts/UI/QuestLogMenu.cs index 73db106d..88f82b27 100644 --- a/Assets/UnZENity-Core/Scripts/UI/QuestLogMenu.cs +++ b/Assets/UnZENity-Core/Scripts/UI/QuestLogMenu.cs @@ -31,7 +31,6 @@ namespace GUZ.Core.UI /// public class QuestLogMenu : MonoBehaviour, IMenu { - // Menu entries (e.g. text:Current missions) are created dynamically. We therefore use this GO as reference (kind of Prefab). [SerializeField] private GameObject _canvas; [SerializeField] private GameObject _background; diff --git a/Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs b/Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs index 4786b089..67cded07 100644 --- a/Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs +++ b/Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs @@ -1,13 +1,27 @@ -using System; +using GUZ.Core.UnZENity_Core.Scripts.UI; using UnityEngine; namespace GUZ.Core.UI { - public class StatusMenu : MonoBehaviour, IMenu + public class StatusMenu : AbstractMenu { - public void ToggleVisibility() + [SerializeField] private GameObject _canvas; + [SerializeField] private GameObject _background; + + + private void Awake() + { + GlobalEventDispatcher.ZenKitBootstrapped.AddListener(Setup); + } + + private void Setup() + { + + } + + public override void ToggleVisibility() { - throw new NotImplementedException(); + // FIXME - If opened, then fetch latest hero stats. } } } diff --git a/Assets/UnZENity-VR/Scripts/Components/HVROverrides/VRPlayerController.cs b/Assets/UnZENity-VR/Scripts/Components/HVROverrides/VRPlayerController.cs index 023e474b..3e6def86 100644 --- a/Assets/UnZENity-VR/Scripts/Components/HVROverrides/VRPlayerController.cs +++ b/Assets/UnZENity-VR/Scripts/Components/HVROverrides/VRPlayerController.cs @@ -1,7 +1,7 @@ #if GUZ_HVR_INSTALLED using GUZ.Core; using GUZ.Core.Manager; -using GUZ.Core.Player.Menu; +using GUZ.Core.Menu; using GUZ.Core.UI; using HurricaneVR.Framework.Core.Player; using MyBox; @@ -17,6 +17,7 @@ public class VRPlayerController : HVRPlayerController [Separator("GUZ - Settings")] public MainMenu MainMenu; public QuestLogMenu QuestLogMenu; + public StatusMenu StatusMenu; protected override void Start() @@ -27,6 +28,7 @@ protected override void Start() // Enabled later via button press or other events MainMenu.gameObject.SetActive(false); QuestLogMenu.gameObject.SetActive(false); + StatusMenu.gameObject.SetActive(false); } protected override void Update() @@ -35,15 +37,18 @@ protected override void Update() if (_guzInputs.IsMenuActivated && IsGameScene()) { - // Toggle visibility MainMenu.ToggleVisibility(); } if (_guzInputs.IsQuestLogActivated && IsGameScene()) { - // Toggle visibility QuestLogMenu.ToggleVisibility(); } + + if (_guzInputs.IsStatusActivated && IsGameScene()) + { + StatusMenu.ToggleVisibility(); + } } private void OnDestroy() diff --git a/Assets/UnZENity-VR/Scripts/Components/HVROverrides/VRPlayerInputs.cs b/Assets/UnZENity-VR/Scripts/Components/HVROverrides/VRPlayerInputs.cs index 94cb32f9..9c6100c1 100644 --- a/Assets/UnZENity-VR/Scripts/Components/HVROverrides/VRPlayerInputs.cs +++ b/Assets/UnZENity-VR/Scripts/Components/HVROverrides/VRPlayerInputs.cs @@ -15,6 +15,9 @@ public class VRPlayerInputs : HVRPlayerInputs public bool IsQuestLogActivated; public HVRButtonState QuestLogState; + public bool IsStatusActivated; + public HVRButtonState StatusState; + protected override void UpdateInput() { base.UpdateInput(); @@ -26,11 +29,14 @@ protected override void UpdateInput() IsMenuActivated = GetMenuActivated(); IsQuestLogActivated = GetQuestLogActivated(); + IsStatusActivated = GetStatusActivated(); ResetState(ref MenuState); SetState(ref MenuState, IsMenuActivated); ResetState(ref QuestLogState); SetState(ref QuestLogState, IsQuestLogActivated); + ResetState(ref StatusState); + SetState(ref StatusState, IsStatusActivated); } private bool GetMenuActivated() @@ -61,7 +67,19 @@ private bool GetQuestLogActivated() return Keyboard.current[Key.L].wasPressedThisFrame; } - // FIXME - Add button from VR Controller + // During normal gameplay, we grab the menu from our chest socket. + return false; + } + + private bool GetStatusActivated() + { + // If HVRSimulator is Active + if (UseWASD) + { + return Keyboard.current[Key.B].wasPressedThisFrame; + } + + // During normal gameplay, we grab the menu from our chest socket. return false; } diff --git a/Assets/UnZENity-VR/Scripts/Components/HVROverrides/VRSimulatorControlsGUI.cs b/Assets/UnZENity-VR/Scripts/Components/HVROverrides/VRSimulatorControlsGUI.cs index 7fc455bb..11202c3f 100644 --- a/Assets/UnZENity-VR/Scripts/Components/HVROverrides/VRSimulatorControlsGUI.cs +++ b/Assets/UnZENity-VR/Scripts/Components/HVROverrides/VRSimulatorControlsGUI.cs @@ -19,7 +19,8 @@ Rotate Camera -> Hold Mouse right click Jump (Hexabody) -> Space Crouch (Hexabody) -> Z/X Menu -> Escape -Quest log -> L"; +Quest log -> L +Status -> B"; private void Awake() From f6d18c87533dad3f6a9e319850fe15ae272003ab Mon Sep 17 00:00:00 2001 From: JaXt0r <120568393+JaXt0r@users.noreply.github.com> Date: Sun, 17 Nov 2024 16:31:07 +0100 Subject: [PATCH 4/6] feat(StatusMenu): Add demo data for skills. --- .../Prefabs/Menus/MenuSkeleton.prefab | 250 ++++++ .../Prefabs/Menus/MenuSkeleton.prefab.meta | 7 + .../Scripts/Globals/Constants.cs | 6 + .../UnZENity-Core/Scripts/UI/AbstractMenu.cs | 163 +++- Assets/UnZENity-Core/Scripts/UI/MainMenu.cs | 2 +- .../UnZENity-Core/Scripts/UI/QuestLogMenu.cs | 2 +- Assets/UnZENity-Core/Scripts/UI/StatusMenu.cs | 103 ++- .../VR/GUZ-VR-Status-Socketable.asset | 48 ++ .../VR/GUZ-VR-Status-Socketable.asset.meta | 8 + .../Resources/VR/Prefabs/Player.prefab | 759 +++++++++++++----- 10 files changed, 1155 insertions(+), 193 deletions(-) create mode 100644 Assets/UnZENity-Core/Resources/Prefabs/Menus/MenuSkeleton.prefab create mode 100644 Assets/UnZENity-Core/Resources/Prefabs/Menus/MenuSkeleton.prefab.meta create mode 100644 Assets/UnZENity-VR/Resources/VR/GUZ-VR-Status-Socketable.asset create mode 100644 Assets/UnZENity-VR/Resources/VR/GUZ-VR-Status-Socketable.asset.meta diff --git a/Assets/UnZENity-Core/Resources/Prefabs/Menus/MenuSkeleton.prefab b/Assets/UnZENity-Core/Resources/Prefabs/Menus/MenuSkeleton.prefab new file mode 100644 index 00000000..b7e452ec --- /dev/null +++ b/Assets/UnZENity-Core/Resources/Prefabs/Menus/MenuSkeleton.prefab @@ -0,0 +1,250 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4377388513586376009 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2250348072498691615} + - component: {fileID: 7666896976161519757} + - component: {fileID: 59041571318297596} + - component: {fileID: 6126979473119700643} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2250348072498691615 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4377388513586376009} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.01, y: 0.01, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5251646276479726567} + m_Father: {fileID: 2282871596405899006} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &7666896976161519757 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4377388513586376009} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 1 + m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &59041571318297596 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4377388513586376009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!114 &6126979473119700643 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4377388513586376009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &8412591900964177680 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2282871596405899006} + m_Layer: 0 + m_Name: MenuSkeleton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2282871596405899006 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8412591900964177680} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2250348072498691615} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &4136749761303385679 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2250348072498691615} + m_Modifications: + - target: {fileID: 4400845214833122101, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_LocalScale.x + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 4400845214833122101, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_LocalScale.z + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 4400845214833122101, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_LocalPosition.z + value: 0.01 + objectReference: {fileID: 0} + - target: {fileID: 6670382117503956553, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_Name + value: Background + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} +--- !u!224 &5251646276479726567 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8181131269388117416, guid: 4c82f166e82eb4d489e539f0b15e066d, type: 3} + m_PrefabInstance: {fileID: 4136749761303385679} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/UnZENity-Core/Resources/Prefabs/Menus/MenuSkeleton.prefab.meta b/Assets/UnZENity-Core/Resources/Prefabs/Menus/MenuSkeleton.prefab.meta new file mode 100644 index 00000000..3832b63d --- /dev/null +++ b/Assets/UnZENity-Core/Resources/Prefabs/Menus/MenuSkeleton.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fb10a987da14e4d44b4d853b5ed03e26 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UnZENity-Core/Scripts/Globals/Constants.cs b/Assets/UnZENity-Core/Scripts/Globals/Constants.cs index 219f37ec..e88ec0c4 100644 --- a/Assets/UnZENity-Core/Scripts/Globals/Constants.cs +++ b/Assets/UnZENity-Core/Scripts/Globals/Constants.cs @@ -1,5 +1,7 @@ using System; using UnityEngine; +using ZenKit; +using Material = UnityEngine.Material; namespace GUZ.Core.Globals { @@ -18,6 +20,10 @@ public static class Daedalus public static string PickLockSuccessSoundName => GameData.GothicVm.GetSymbolByName("_STR_SOUND_PICKLOCK_SUCCESS").GetString(0); public static string PickLockUnlockSoundName => GameData.GothicVm.GetSymbolByName("_STR_SOUND_PICKLOCK_UNLOCK").GetString(0); public static string DoorUnlockSoundName => "DOOR_UNLOCK.WAV"; // _STR_*_UNLOCK value above couldn't be found/isn't used in G1, therefore we use this as fallback. + + + public static DaedalusSymbol TalentTitles => GameData.GothicVm.GetSymbolByName("TXT_TALENTS"); + public static DaedalusSymbol TalentSkills => GameData.GothicVm.GetSymbolByName("TXT_TALENTS_SKILLS"); } diff --git a/Assets/UnZENity-Core/Scripts/UI/AbstractMenu.cs b/Assets/UnZENity-Core/Scripts/UI/AbstractMenu.cs index 996809e8..0a2dbfe3 100644 --- a/Assets/UnZENity-Core/Scripts/UI/AbstractMenu.cs +++ b/Assets/UnZENity-Core/Scripts/UI/AbstractMenu.cs @@ -1,15 +1,174 @@ -using UnityEngine; +using System.Collections.Generic; +using GUZ.Core.Globals; +using MyBox; +using TMPro; +using UnityEngine; +using UnityEngine.UI; +using ZenKit.Daedalus; namespace GUZ.Core.UnZENity_Core.Scripts.UI { public abstract class AbstractMenu : MonoBehaviour { + [SerializeField] protected GameObject Canvas; + [SerializeField] protected GameObject Background; + + protected Dictionary MenuItemsCache = new(); + + public abstract void ToggleVisibility(); + public abstract void Enable(); + protected abstract void ExecuteCommand(string commandName); // e.g. + protected abstract bool IsMenuItemInitiallyActive(string menuItemName); + + protected void CreateRootElements(string menuDefName) + { + var menuInstance = GameData.MenuVm.InitInstance(menuDefName); + + var backPic = GameGlobals.Textures.GetMaterial(menuInstance.BackPic); + Background.GetComponentInChildren().sharedMaterial = backPic; + + // Set canvas size based on texture size of background + var canvasRect = Canvas.GetComponent(); + canvasRect.SetWidth(backPic.mainTexture.width); + canvasRect.SetHeight(backPic.mainTexture.height); + + // Calculate pixelRatio for virtual positions of child elements. + var virtualPixelX = menuInstance.DimX + 1; + var virtualPixelY = menuInstance.DimY + 1; + var realPixelX = backPic.mainTexture.width; + var realPixelY = backPic.mainTexture.height; + var pixelRatioX = (float)virtualPixelX / realPixelX; // for normal G1, should be 16 (=8192 / 512) + var pixelRatioY = (float)virtualPixelY / realPixelY; - protected void CreateRootElements() + for (var i = 0; ; i++) + { + var menuItemName = menuInstance.GetItem(i); + + // We passed the last item. + if (menuItemName.IsNullOrEmpty()) + { + break; + } + + CreateMenuItem(menuInstance, pixelRatioX, pixelRatioY, menuItemName); + } + } + + private void CreateMenuItem(MenuInstance main, float pixelRatioX, float pixelRatioY, string menuItemName) { + var item = GameData.MenuVm.InitInstance(menuItemName); + + GameObject itemGo; + + if (item.MenuItemType == MenuItemType.ListBox) + { + itemGo = ResourceLoader.TryGetPrefabObject(PrefabType.UiEmpty, name: menuItemName, parent: Canvas)!; + } + else if (item.Flags.HasFlag(MenuItemFlag.Selectable)) + { + itemGo = ResourceLoader.TryGetPrefabObject(PrefabType.UiButton, name: menuItemName, parent: Canvas)!; + var button = itemGo.GetComponentInChildren