diff --git a/Assets/Resources/Prefabs/Mobs.meta b/Assets/Resources/Prefabs/Mobs.meta new file mode 100644 index 0000000000000000000000000000000000000000..94fc82805eadea58c568447d7f6146fdb44f22e2 --- /dev/null +++ b/Assets/Resources/Prefabs/Mobs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 99247f2431d8d804f9fbb93d5804a600 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Mobs/Dummy.meta b/Assets/Resources/Prefabs/Mobs/Dummy.meta new file mode 100644 index 0000000000000000000000000000000000000000..f57cd2f10afe6e4ecc3798f0557d99ec1ba7110c --- /dev/null +++ b/Assets/Resources/Prefabs/Mobs/Dummy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eaa2c1bd313f8484991336c8b7f5f534 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Mobs/Dummy/Dummy.prefab b/Assets/Resources/Prefabs/Mobs/Dummy/Dummy.prefab new file mode 100644 index 0000000000000000000000000000000000000000..5b4df5b2868d5ccae97680b5237e526fc2fb4ad9 --- /dev/null +++ b/Assets/Resources/Prefabs/Mobs/Dummy/Dummy.prefab @@ -0,0 +1,277 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1626430850021745201 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 42222099870390294} + - component: {fileID: 4005595574687960794} + - component: {fileID: 8000563134980268694} + - component: {fileID: 5575106368289396507} + m_Layer: 7 + m_Name: Dummy + m_TagString: Enemy + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &42222099870390294 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1626430850021745201} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.59, y: 0, z: 1.93} + m_LocalScale: {x: 5, y: 1, z: 5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2384853256735062225} + - {fileID: 7885174992267022071} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &4005595574687960794 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1626430850021745201} + 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: 0.4, y: 1.5, z: 0.4} + m_Center: {x: 0, y: 0.75, z: 0} +--- !u!54 &8000563134980268694 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1626430850021745201} + 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: 80 + m_CollisionDetection: 0 +--- !u!114 &5575106368289396507 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1626430850021745201} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 36e5aa8cb18425941b8dede35c491e0e, type: 3} + m_Name: + m_EditorClassIdentifier: + Id: + knockbackResistance: 1 + baseSpeed: 0 + maxHealth: 100000 + health: 100000 + baseDamage: 0 +--- !u!1 &7650759306955463222 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7885174992267022071} + - component: {fileID: 5248822067544974682} + - component: {fileID: 7671431549252728022} + m_Layer: 7 + m_Name: Hitbox + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7885174992267022071 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7650759306955463222} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.59, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 42222099870390294} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &5248822067544974682 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7650759306955463222} + 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_Size: {x: 0.4, y: 1.5, z: 0.4} + m_Center: {x: 0, y: 0.75, z: 0} +--- !u!114 &7671431549252728022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7650759306955463222} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d305728f9c09ee84d861e4d2a18c0be0, type: 3} + m_Name: + m_EditorClassIdentifier: + damage: 0 + knockbackPower: 10 +--- !u!1 &8652275233143689981 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2384853256735062225} + - component: {fileID: 2999634125714444267} + - component: {fileID: 6034341801195886003} + - component: {fileID: 3938199748560579814} + m_Layer: 7 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2384853256735062225 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8652275233143689981} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.75, z: 0} + m_LocalScale: {x: 0.4, y: 1.5, z: 0.4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 42222099870390294} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2999634125714444267 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8652275233143689981} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &6034341801195886003 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8652275233143689981} + m_Enabled: 1 + 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: 10303, guid: 0000000000000000f000000000000000, type: 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!95 &3938199748560579814 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8652275233143689981} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 0} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 diff --git a/Assets/Resources/Prefabs/Mobs/Dummy/Dummy.prefab.meta b/Assets/Resources/Prefabs/Mobs/Dummy/Dummy.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..342d57a4de9ff03557d0a6be87bad277af0f1720 --- /dev/null +++ b/Assets/Resources/Prefabs/Mobs/Dummy/Dummy.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 390863d613c9cc344aa16e3796881ed1 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 6f5bf0d10685cfe3b8bd6ca837d79104bc83f9f3..75386b6ac61ec54f45ee08c879b5ca1065adff12 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -154,6 +154,7 @@ MonoBehaviour: m_EditorClassIdentifier: backButton: 27 attackButton: 122 + attackAlternateButton: 120 interactButton: 120 --- !u!4 &6125823 Transform: @@ -245,7 +246,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 117855954} serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + 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 @@ -352,6 +353,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 1374546119} - {fileID: 117855957} - {fileID: 542408818} m_Father: {fileID: 239523007} @@ -413,107 +415,11 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &542408817 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 542408818} - - component: {fileID: 542408820} - - component: {fileID: 542408819} - - component: {fileID: 542408821} - m_Layer: 7 - m_Name: Dummy - m_TagString: Enemy - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &542408818 +--- !u!4 &542408818 stripped Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 42222099870390294, guid: 390863d613c9cc344aa16e3796881ed1, type: 3} + m_PrefabInstance: {fileID: 2621625618582748302} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 542408817} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.59, y: 0, z: 1.93} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 763963990} - m_Father: {fileID: 484130345} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!54 &542408819 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 542408817} - 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: 80 - m_CollisionDetection: 0 ---- !u!65 &542408820 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 542408817} - 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: 0.4, y: 1.5, z: 0.4} - m_Center: {x: 0, y: 0.75, z: 0} ---- !u!114 &542408821 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 542408817} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 36e5aa8cb18425941b8dede35c491e0e, type: 3} - m_Name: - m_EditorClassIdentifier: - Id: - knockbackResistance: 1 - baseSpeed: 0 - maxHealth: 100000 - health: 100000 - baseDamage: 0 --- !u!1 &675919034 GameObject: m_ObjectHideFlags: 0 @@ -713,180 +619,11 @@ Transform: m_Children: [] m_Father: {fileID: 1098815287} m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} ---- !u!1 &763963989 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 763963990} - - component: {fileID: 763963992} - - component: {fileID: 763963991} - - component: {fileID: 763963993} - m_Layer: 7 - m_Name: Model - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &763963990 +--- !u!4 &766737620 stripped Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 763963989} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.75, z: 0} - m_LocalScale: {x: 0.4, y: 1.5, z: 0.4} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 542408818} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &763963991 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 763963989} - m_Enabled: 1 - 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: 10303, guid: 0000000000000000f000000000000000, type: 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!33 &763963992 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 763963989} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!95 &763963993 -Animator: - serializedVersion: 5 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 763963989} - m_Enabled: 1 - m_Avatar: {fileID: 0} - m_Controller: {fileID: 0} - m_CullingMode: 0 - m_UpdateMode: 0 - m_ApplyRootMotion: 0 - m_LinearVelocityBlending: 0 - m_StabilizeFeet: 0 - m_WarningMessage: - m_HasTransformHierarchy: 1 - m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorStateOnDisable: 0 - m_WriteDefaultValuesOnDisable: 0 ---- !u!1 &766737619 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 766737620} - - component: {fileID: 766737622} - - component: {fileID: 766737621} - m_Layer: 0 - m_Name: TestCollectible - m_TagString: Collectible - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &766737620 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 766737619} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.597, y: 0.843, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1792976464} - m_Father: {fileID: 2127634081} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &766737621 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 766737619} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6a318ebd05eb15c4fabf9cbe7355eb41, type: 3} - m_Name: - m_EditorClassIdentifier: - Id: - TimeToLive: 5 ---- !u!135 &766737622 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 4380898715013208265, guid: c21e0108f08f0d74b92e3576ec7a7ecc, type: 3} + m_PrefabInstance: {fileID: 2131633842949370138} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 766737619} - 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.5 - m_Center: {x: 0, y: 0, z: 0} --- !u!1 &770593019 GameObject: m_ObjectHideFlags: 0 @@ -1004,9 +741,10 @@ GameObject: - component: {fileID: 963194227} - component: {fileID: 963194226} - component: {fileID: 963194229} + - component: {fileID: 963194230} m_Layer: 0 m_Name: MainCamera - m_TagString: MainCamera + m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -1078,13 +816,13 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 963194225} serializedVersion: 2 - m_LocalRotation: {x: 0.15573853, y: 0.0017222604, z: 0.00027153606, w: 0.9877968} - m_LocalPosition: {x: 0.17, y: 1.52, z: -3.42} + m_LocalRotation: {x: 0.08715578, y: 0, z: 0, w: 0.9961947} + m_LocalPosition: {x: 0, y: 3, z: -8} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 239523007} - m_LocalEulerAnglesHint: {x: 17.919, y: 0.21, z: 0.065} + m_LocalEulerAnglesHint: {x: 10, y: 0, z: 0} --- !u!114 &963194229 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1094,12 +832,34 @@ MonoBehaviour: m_GameObject: {fileID: 963194225} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e879762b280218e4ea3042376813400a, type: 3} + m_Script: {fileID: 11500000, guid: 7558c354360ba85428bc25c0e0a3d83b, type: 3} m_Name: m_EditorClassIdentifier: target: {fileID: 117855957} followingTime: 0.2 - offset: {x: 0, y: 2.52, z: -3.42} + mouseSensitivity: 2 + mouseTurn: {x: 0, y: 0} +--- !u!65 &963194230 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963194225} + 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_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} --- !u!4 &1093326602 stripped Transform: m_CorrespondingSourceObject: {fileID: 8728181779748450929, guid: 1a7698227caac3d429dceb8aa5056502, type: 3} @@ -1137,7 +897,6 @@ Transform: m_Children: - {fileID: 705507995} - {fileID: 770593023} - - {fileID: 1374546119} m_Father: {fileID: 239523007} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1098815288 @@ -1164,7 +923,7 @@ GameObject: - component: {fileID: 1374546122} - component: {fileID: 1374546121} - component: {fileID: 1374546120} - m_Layer: 0 + m_Layer: 7 m_Name: Marker m_TagString: Untagged m_Icon: {fileID: 0} @@ -1180,11 +939,11 @@ Transform: m_GameObject: {fileID: 1374546118} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 2, y: 1, z: 2} - m_LocalScale: {x: 1, y: 2, z: 1} + m_LocalPosition: {x: 5, y: 2.5, z: 5} + m_LocalScale: {x: 5, y: 5, z: 5} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1098815287} + m_Father: {fileID: 484130345} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!65 &1374546120 BoxCollider: @@ -1257,89 +1016,6 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1374546118} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1792976463 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1792976464} - - component: {fileID: 1792976466} - - component: {fileID: 1792976465} - m_Layer: 0 - m_Name: Model - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1792976464 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1792976463} - serializedVersion: 2 - 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: 766737620} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1792976465 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1792976463} - m_Enabled: 1 - 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: 10303, guid: 0000000000000000f000000000000000, type: 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!33 &1792976466 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1792976463} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &2127634080 GameObject: m_ObjectHideFlags: 0 @@ -1385,6 +1061,120 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c051aae39aef0264ba144bc30cbe301e, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1001 &2131633842949370138 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2127634081} + m_Modifications: + - target: {fileID: 1946870712216142017, guid: c21e0108f08f0d74b92e3576ec7a7ecc, type: 3} + propertyPath: m_Name + value: TestCollectible + objectReference: {fileID: 0} + - target: {fileID: 4380898715013208265, guid: c21e0108f08f0d74b92e3576ec7a7ecc, type: 3} + propertyPath: m_LocalPosition.x + value: -1.597 + objectReference: {fileID: 0} + - target: {fileID: 4380898715013208265, guid: c21e0108f08f0d74b92e3576ec7a7ecc, type: 3} + propertyPath: m_LocalPosition.y + value: 0.843 + objectReference: {fileID: 0} + - target: {fileID: 4380898715013208265, guid: c21e0108f08f0d74b92e3576ec7a7ecc, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4380898715013208265, guid: c21e0108f08f0d74b92e3576ec7a7ecc, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4380898715013208265, guid: c21e0108f08f0d74b92e3576ec7a7ecc, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4380898715013208265, guid: c21e0108f08f0d74b92e3576ec7a7ecc, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4380898715013208265, guid: c21e0108f08f0d74b92e3576ec7a7ecc, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4380898715013208265, guid: c21e0108f08f0d74b92e3576ec7a7ecc, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4380898715013208265, guid: c21e0108f08f0d74b92e3576ec7a7ecc, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4380898715013208265, guid: c21e0108f08f0d74b92e3576ec7a7ecc, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c21e0108f08f0d74b92e3576ec7a7ecc, type: 3} +--- !u!1001 &2621625618582748302 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 484130345} + m_Modifications: + - target: {fileID: 42222099870390294, guid: 390863d613c9cc344aa16e3796881ed1, type: 3} + propertyPath: m_LocalPosition.x + value: -1.59 + objectReference: {fileID: 0} + - target: {fileID: 42222099870390294, guid: 390863d613c9cc344aa16e3796881ed1, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 42222099870390294, guid: 390863d613c9cc344aa16e3796881ed1, type: 3} + propertyPath: m_LocalPosition.z + value: 1.93 + objectReference: {fileID: 0} + - target: {fileID: 42222099870390294, guid: 390863d613c9cc344aa16e3796881ed1, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 42222099870390294, guid: 390863d613c9cc344aa16e3796881ed1, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 42222099870390294, guid: 390863d613c9cc344aa16e3796881ed1, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 42222099870390294, guid: 390863d613c9cc344aa16e3796881ed1, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 42222099870390294, guid: 390863d613c9cc344aa16e3796881ed1, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 42222099870390294, guid: 390863d613c9cc344aa16e3796881ed1, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 42222099870390294, guid: 390863d613c9cc344aa16e3796881ed1, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1626430850021745201, guid: 390863d613c9cc344aa16e3796881ed1, type: 3} + propertyPath: m_Name + value: Dummy + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 390863d613c9cc344aa16e3796881ed1, type: 3} --- !u!1001 &4718921866596059802 PrefabInstance: m_ObjectHideFlags: 0 @@ -1393,13 +1183,21 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 117855957} m_Modifications: + - target: {fileID: 2635269686106844091, guid: 1a7698227caac3d429dceb8aa5056502, type: 3} + propertyPath: fireRange + value: 10 + objectReference: {fileID: 0} - target: {fileID: 2635269686106844091, guid: 1a7698227caac3d429dceb8aa5056502, type: 3} propertyPath: BaseDamage value: 10 objectReference: {fileID: 0} - target: {fileID: 2635269686106844091, guid: 1a7698227caac3d429dceb8aa5056502, type: 3} propertyPath: KnockbackPower - value: 200 + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2635269686106844091, guid: 1a7698227caac3d429dceb8aa5056502, type: 3} + propertyPath: projectileSpeed + value: 50 objectReference: {fileID: 0} - target: {fileID: 3608611397487402253, guid: 1a7698227caac3d429dceb8aa5056502, type: 3} propertyPath: m_Name diff --git a/Assets/Scripts/Core/Entities/Mobs/Dummy/DummyAnimationController.cs b/Assets/Scripts/Core/Entities/Mobs/Dummy/DummyAnimationController.cs index 0fec18555cc0c0bec80f7f5c8ad1c85c6dfcffc6..5b9556c9eff16e61d41cda5a308e8847fb2eb645 100644 --- a/Assets/Scripts/Core/Entities/Mobs/Dummy/DummyAnimationController.cs +++ b/Assets/Scripts/Core/Entities/Mobs/Dummy/DummyAnimationController.cs @@ -20,7 +20,6 @@ public class DummyAnimationController : AnimationController{ // Functions private void IndicateDamaged(){ - Debug.Log("Dummy is damaged"); meshRenderer.material.color = Color.red; } diff --git a/Assets/Scripts/Core/Game/Data/GameControls.cs b/Assets/Scripts/Core/Game/Data/GameInput.cs similarity index 81% rename from Assets/Scripts/Core/Game/Data/GameControls.cs rename to Assets/Scripts/Core/Game/Data/GameInput.cs index 4e7976ef6ba36294ae307cf791ea424dbda06200..37ac6ace1595d500826f7faaeb270761820e3662 100644 --- a/Assets/Scripts/Core/Game/Data/GameControls.cs +++ b/Assets/Scripts/Core/Game/Data/GameInput.cs @@ -1,8 +1,8 @@ using UnityEngine; -public class GameControls : MonoBehaviour { +public class GameInput : MonoBehaviour { // Static instance - public static GameControls instance; + public static GameInput instance; // Attributes public KeyCode backButton = KeyCode.Escape; diff --git a/Assets/Scripts/Core/Game/Data/GameControls.cs.meta b/Assets/Scripts/Core/Game/Data/GameInput.cs.meta similarity index 100% rename from Assets/Scripts/Core/Game/Data/GameControls.cs.meta rename to Assets/Scripts/Core/Game/Data/GameInput.cs.meta diff --git a/Assets/Scripts/Core/Game/GameCameraController.cs b/Assets/Scripts/Core/Game/GameCameraController.cs index 257868a304877aecd9152f605acc30ade08acfa9..f0f88a82871a77a0441cc6790f0ed86bbe3571d9 100644 --- a/Assets/Scripts/Core/Game/GameCameraController.cs +++ b/Assets/Scripts/Core/Game/GameCameraController.cs @@ -7,6 +7,7 @@ public class GameCameraController { private Camera activeCamera; private CameraBehaviour behaviour; private CameraBehaviourType behaviourType; + public Transform Orientation => activeCamera.transform; // Constructor public GameCameraController(Camera camera){ @@ -33,6 +34,7 @@ public class GameCameraController { behaviour = cameraBehaviourType switch{ CameraBehaviourType.STATIC => activeCamera.AddComponent<CameraStatic>(), CameraBehaviourType.FOLLOW => activeCamera.AddComponent<CameraFollowObject>(), + CameraBehaviourType.MOUSE => activeCamera.AddComponent<CameraMouse>(), _ => throw new Exception("Invalid cameraBehaviourType set, please refer to enum CameraBehaviourType for valid types") }; diff --git a/Assets/Scripts/Core/Game/GameController.cs b/Assets/Scripts/Core/Game/GameController.cs index b65d354e8b71abbae002fa7679286c60b4c97912..7a8863d18aaa0208a81577d58fdec3d06dff01f2 100644 --- a/Assets/Scripts/Core/Game/GameController.cs +++ b/Assets/Scripts/Core/Game/GameController.cs @@ -22,7 +22,7 @@ public class GameController : MonoBehaviour { // Functions protected void Update(){ - if(Input.GetKeyDown(GameControls.instance.backButton)){ + if(Input.GetKeyDown(GameInput.instance.backButton)){ stateController.HandleEscape(); } } diff --git a/Assets/Scripts/Core/Game/GameStateController.cs b/Assets/Scripts/Core/Game/GameStateController.cs index 2f73522629ddc0c84adce3e1364956898505cc7d..91d3df00da802da5457f22b5507e6c9a82a70b95 100644 --- a/Assets/Scripts/Core/Game/GameStateController.cs +++ b/Assets/Scripts/Core/Game/GameStateController.cs @@ -21,7 +21,7 @@ public class GameStateController{ Debug.Log(string.Format("GameState {0}; Current gamestate is {1}", e.EventType, e.NewGameState)); } - public void PushState(GameState gameState){ + private void SetState(GameState gameState){ //TODO: Review cutscenes and menu behaviour Time.timeScale = gameState switch{ GameState.PAUSED => 0, @@ -30,8 +30,19 @@ public class GameStateController{ GameState.MENU => 0, _ => throw new Exception("Invalid gameState pushed to GameStateController, please refer to enum GameState for valid states"), }; + Cursor.lockState = gameState switch { + GameState.PAUSED => CursorLockMode.None, + GameState.RUNNING => CursorLockMode.Locked, + GameState.CUTSCENE => CursorLockMode.Locked, + GameState.MENU => CursorLockMode.None, + _ => throw new Exception("Invalid gameState pushed to GameStateController, please refer to enum GameState for valid states"), + }; + } + public void PushState(GameState gameState){ gameStateStack.Push(gameState); + + SetState(gameState); OnGameStateChange?.Invoke(new GameStateChangeArgs( StackChangeEventType.PUSH, gameStateStack.Count, @@ -42,15 +53,8 @@ public class GameStateController{ public void PopState(){ gameStateStack.Pop(); GameState gameState = gameStateStack.Peek(); - //TODO: Review cutscenes behaviour - Time.timeScale = gameState switch{ - GameState.PAUSED => 0, - GameState.RUNNING => 1, - GameState.CUTSCENE => 0, - GameState.MENU => 0, - _ => throw new Exception("Invalid gameState popped to GameStateController, please refer to enum GameState for valid states"), - }; - + + SetState(gameState); OnGameStateChange?.Invoke(new GameStateChangeArgs( StackChangeEventType.POP, gameStateStack.Count, diff --git a/Assets/Scripts/Core/Objects/Weapons/TestWeapon/TestWeapon.cs b/Assets/Scripts/Core/Objects/Weapons/TestWeapon/TestWeapon.cs index 97c829e20bd014e7bf6c8f49e6aca5effbd9114f..9fce8365e8eafa5be70c30691bcc426ed4249619 100644 --- a/Assets/Scripts/Core/Objects/Weapons/TestWeapon/TestWeapon.cs +++ b/Assets/Scripts/Core/Objects/Weapons/TestWeapon/TestWeapon.cs @@ -31,13 +31,13 @@ public class TestWeapon : WeaponObject{ knockbackPower: KnockbackPower / 4, type: bearerType, position: transform.position, - rotation: bearer.Rotation, - knockbackOrigin: transform.position - (bearer.Front * projectileSpeed), + rotation: bearer.Orientation.rotation, + knockbackOrigin: transform.position - (bearer.Orientation.forward * projectileSpeed), objectName: "TestWeapon Projectile" ); attackProjectile.travelDistance = fireRange; attackProjectile.speed = projectileSpeed; - attackProjectile.direction = bearer.Front; + attackProjectile.direction = bearer.Orientation.forward; ObjectFactory.DestroyObject(attackProjectile, 1f); } diff --git a/Assets/Scripts/Core/Player/Player.cs b/Assets/Scripts/Core/Player/Player.cs index 76f4106ed1c18e28ee7748e4e1da7f79266ff2ae..36a2053474903119b531f746aa6b564d5cb4ace0 100644 --- a/Assets/Scripts/Core/Player/Player.cs +++ b/Assets/Scripts/Core/Player/Player.cs @@ -21,9 +21,9 @@ public class Player : PlayerEntity { Health *= GameConfig.DIFFICULTY_MODIFIERS[GameSaveData.instance.difficulty].PlayerHealthMultiplier; Weapon = GetComponentInChildren<WeaponObject>(); stateController = new PlayerStateController(this); + inputController = new PlayerInputController(this); movementController = new PlayerMovementController(this); animationController = new PlayerAnimationController(this); - inputController = new PlayerInputController(this); stats = new PlayerStats(this); GameController.instance.player = this; @@ -39,7 +39,8 @@ public class Player : PlayerEntity { new void FixedUpdate(){ base.FixedUpdate(); - stateController.UpdateState(); movementController.HandleMovement(); + + stateController.UpdateState(); } } diff --git a/Assets/Scripts/Core/Player/PlayerInputController.cs b/Assets/Scripts/Core/Player/PlayerInputController.cs index 95ed043a66c86373f48c764703ea178b71b5af12..85e9ba176918365e5d7ace6a34204936acf9562b 100644 --- a/Assets/Scripts/Core/Player/PlayerInputController.cs +++ b/Assets/Scripts/Core/Player/PlayerInputController.cs @@ -1,3 +1,4 @@ +using System; using UnityEngine; public class PlayerInputController{ @@ -16,23 +17,17 @@ public class PlayerInputController{ movementInputX = Input.GetAxisRaw("Horizontal"); movementInputZ = Input.GetAxisRaw("Vertical"); - if(Input.GetKeyDown(GameControls.instance.attackButton)){ - Debug.Log("Player is attacking"); - + if(Input.GetKeyDown(GameInput.instance.attackButton)){ if(player.Weapon == null) return; player.Weapon.Attack(); } - else if(Input.GetKeyDown(GameControls.instance.attackAlternateButton)){ - Debug.Log("Player is attacking (alternate)"); - + else if(Input.GetKeyDown(GameInput.instance.attackAlternateButton)){ if(player.Weapon == null) return; player.Weapon.AttackAlternate(); } - else if(Input.GetKeyDown(GameControls.instance.interactButton)){ - Debug.Log("Player is interacting"); - + else if(Input.GetKeyDown(GameInput.instance.interactButton)){ ObjectManager.instance.LogObjects(); EntityManager.instance.LogObjects(); } diff --git a/Assets/Scripts/Core/Player/PlayerMovementController.cs b/Assets/Scripts/Core/Player/PlayerMovementController.cs index 58681cee7b9c00f1dd708f7da43f1d63ed18cd2d..474bb0aef3b0d21ac5ccd1c4a22392e187fa36a0 100644 --- a/Assets/Scripts/Core/Player/PlayerMovementController.cs +++ b/Assets/Scripts/Core/Player/PlayerMovementController.cs @@ -4,10 +4,14 @@ using UnityEngine; public class PlayerMovementController{ // Attributes private readonly Player player; + private Vector3 axisX; + private Vector3 axisZ; // Constructor public PlayerMovementController(Player player){ this.player = player; + axisX = new(GameController.instance.mainCamera.Orientation.right.x, 0, GameController.instance.mainCamera.Orientation.right.z); + axisZ = new(GameController.instance.mainCamera.Orientation.forward.x, 0, GameController.instance.mainCamera.Orientation.forward.z); } // Functions @@ -18,18 +22,26 @@ public class PlayerMovementController{ player.transform.rotation = Quaternion.RotateTowards(player.transform.rotation, target, GameConfig.ROTATION_SMOOTHING * Time.deltaTime); } + private void SnapshotCameraOrientation(){ + axisX = new(GameController.instance.mainCamera.Orientation.right.x, 0, GameController.instance.mainCamera.Orientation.right.z); + axisZ = new(GameController.instance.mainCamera.Orientation.forward.x, 0, GameController.instance.mainCamera.Orientation.forward.z); + } + public void HandleMovement(){ float inputX = player.inputController.movementInputX; float inputZ = player.inputController.movementInputZ; + + SnapshotCameraOrientation(); + Vector3 velocity = new(player.Rigidbody.velocity.x, player.Rigidbody.velocity.y, player.Rigidbody.velocity.z); Vector3 dampVelocity = Vector3.zero; - Vector3 inputVector = new(inputX, 0, inputZ); - Vector3 modifierVector = inputVector.normalized * player.stats.MaxSpeed; + Vector3 movementVector = inputX * axisX.normalized + inputZ * axisZ.normalized; + Vector3 modifierVector = movementVector.normalized * player.stats.MaxSpeed; velocity.x = modifierVector.x; velocity.z = modifierVector.z; player.Rigidbody.velocity = Vector3.SmoothDamp(player.Rigidbody.velocity, velocity, ref dampVelocity, GameConfig.MOVEMENT_SMOOTHING); - if(inputVector != Vector3.zero) HandleRotation(inputVector); + if(movementVector != Vector3.zero) HandleRotation(movementVector); } } diff --git a/Assets/Scripts/Core/UI/Camera.meta b/Assets/Scripts/Core/UI/Camera.meta new file mode 100644 index 0000000000000000000000000000000000000000..ce9b1c75e29a7c56dc8a6e5d78f82ab4d47c5a1a --- /dev/null +++ b/Assets/Scripts/Core/UI/Camera.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c22a8619fa4f8f349be6331f8b2a67e9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Library/CameraBehaviour/CameraFollowObject.cs b/Assets/Scripts/Core/UI/Camera/CameraFollowObject.cs similarity index 68% rename from Assets/Scripts/Library/CameraBehaviour/CameraFollowObject.cs rename to Assets/Scripts/Core/UI/Camera/CameraFollowObject.cs index b489f0e11158662e022429929a244effcb909937..f056ec00d7b7cbcb721d9cad8c0dca75a10704b8 100644 --- a/Assets/Scripts/Library/CameraBehaviour/CameraFollowObject.cs +++ b/Assets/Scripts/Core/UI/Camera/CameraFollowObject.cs @@ -4,11 +4,17 @@ public class CameraFollowObject : CameraBehaviour { // Attributes public Transform target; public float followingTime = CameraConfig.DEFAULT_FOLLOWING_SPEED; - public Vector3 offset = CameraConfig.DEFAULT_CAMERA_OFFSET; - private Vector3 velocity = Vector3.zero; + private Vector3 offset; + private Vector3 velocity; + // Constructor + protected void Start(){ + offset = transform.position - target.position; + } + // Functions protected void FixedUpdate(){ + if(GameController.instance.IsPaused) return; Vector3 targetPosition = target.position + offset; Vector3 newPosition = Vector3.SmoothDamp(transform.position, targetPosition, ref velocity, followingTime); transform.position = newPosition; diff --git a/Assets/Scripts/Library/CameraBehaviour/CameraFollowObject.cs.meta b/Assets/Scripts/Core/UI/Camera/CameraFollowObject.cs.meta similarity index 100% rename from Assets/Scripts/Library/CameraBehaviour/CameraFollowObject.cs.meta rename to Assets/Scripts/Core/UI/Camera/CameraFollowObject.cs.meta diff --git a/Assets/Scripts/Core/UI/Camera/CameraMouse.cs b/Assets/Scripts/Core/UI/Camera/CameraMouse.cs new file mode 100644 index 0000000000000000000000000000000000000000..35d9bee6e4f02435990ac31f6c5c87b4f2440e09 --- /dev/null +++ b/Assets/Scripts/Core/UI/Camera/CameraMouse.cs @@ -0,0 +1,42 @@ +using UnityEngine; + +public class CameraMouse : CameraBehaviour { + // Attributes + public Transform target; + public float mouseSensitivity = 1f; + public Vector2 mouseTurn; + private Quaternion initialRotation; + private Vector3 offset; + private readonly float maximumVerticalAngle = 80f; + + protected void Start(){ + offset = transform.position - target.position; + Cursor.lockState = CursorLockMode.Locked; + initialRotation = transform.rotation; + } + + protected void Update(){ + if(GameController.instance.IsPaused) return; + transform.forward = offset.normalized; + + mouseTurn.x += Input.GetAxis("Mouse X"); + mouseTurn.y += Input.GetAxis("Mouse Y"); + + mouseTurn.y = Mathf.Clamp(mouseTurn.y, -maximumVerticalAngle, maximumVerticalAngle); + + Quaternion rotation = initialRotation; + rotation = Quaternion.AngleAxis(-mouseTurn.y, Vector3.right) * rotation; + rotation = Quaternion.AngleAxis(mouseTurn.x, Vector3.up) * rotation; + + Vector3 newPosition = target.position + rotation * offset; + + bool hit = Physics.Linecast(target.position, newPosition, out RaycastHit hitLocation, 1); + if (hit){ + Debug.Log("Hit Collider: " + hitLocation.collider.gameObject.name); + transform.position = hitLocation.point; + } else{ + transform.position = newPosition; + } + transform.localRotation = rotation; + } +} diff --git a/Assets/Scripts/Core/UI/Camera/CameraMouse.cs.meta b/Assets/Scripts/Core/UI/Camera/CameraMouse.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..f877cf3def515f7028c53927c59cc6c044571dbc --- /dev/null +++ b/Assets/Scripts/Core/UI/Camera/CameraMouse.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7558c354360ba85428bc25c0e0a3d83b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Library/CameraBehaviour/CameraStatic.cs b/Assets/Scripts/Core/UI/Camera/CameraStatic.cs similarity index 100% rename from Assets/Scripts/Library/CameraBehaviour/CameraStatic.cs rename to Assets/Scripts/Core/UI/Camera/CameraStatic.cs diff --git a/Assets/Scripts/Library/CameraBehaviour/CameraStatic.cs.meta b/Assets/Scripts/Core/UI/Camera/CameraStatic.cs.meta similarity index 100% rename from Assets/Scripts/Library/CameraBehaviour/CameraStatic.cs.meta rename to Assets/Scripts/Core/UI/Camera/CameraStatic.cs.meta diff --git a/Assets/Scripts/Library/BaseClasses/EntityObject/AttackObject.cs b/Assets/Scripts/Library/BaseClasses/EntityObject/AttackObject.cs index cbf16f3451fda326ed5be4f21ee50797b8289ef6..2eb40e63bd434739e32947a78ef6186b2cdd8c47 100644 --- a/Assets/Scripts/Library/BaseClasses/EntityObject/AttackObject.cs +++ b/Assets/Scripts/Library/BaseClasses/EntityObject/AttackObject.cs @@ -37,12 +37,12 @@ public class AttackObject : MonoBehaviour, IAttack{ } protected bool Hit(Collider otherCollider){ - otherCollider.transform.TryGetComponent<IDamageable>(out var damageableObject); - if(damageableObject == null) return false; + if(damageableObject == null) return true; + + Debug.Log(string.Format("Hit in hitbox of {0} by {1} with damage of {2}", transform.name, otherCollider.transform.name, Damage)); if(damageableObject.Damageable){ - Debug.Log(string.Format("Hit in hitbox of {0} by {1} with damage of {2}", transform.name, otherCollider.transform.name, Damage)); damageableObject.InflictDamage(Damage); OnDamageEvent?.Invoke(); @@ -52,7 +52,6 @@ public class AttackObject : MonoBehaviour, IAttack{ return true; } - return false; } } diff --git a/Assets/Scripts/Library/BaseClasses/EntityObject/CombatantEntity.cs b/Assets/Scripts/Library/BaseClasses/EntityObject/CombatantEntity.cs index c67ac244786f762a3703f3719bc8ec2f1a241281..d279af8e045a326979212af0edca5b0eec1a90d4 100644 --- a/Assets/Scripts/Library/BaseClasses/EntityObject/CombatantEntity.cs +++ b/Assets/Scripts/Library/BaseClasses/EntityObject/CombatantEntity.cs @@ -15,13 +15,9 @@ public class CombatantEntity : DamageableEntity, IArmed{ get => weapon; set => weapon = value; } - Vector3 IArmed.Front => Front; - Quaternion IArmed.Rotation => transform.rotation; - + public Transform Orientation => transform; // TODO: Test then decide whether to destroy/disable previous weapon - - public void SwapWeapon(WeaponObject newWeapon){ Weapon = newWeapon; } diff --git a/Assets/Scripts/Library/Enum/CameraBehaviourType.cs b/Assets/Scripts/Library/Enum/CameraBehaviourType.cs index f8c1d945ab3e72cb6ab4e1a75e01223d2ab1585e..708d015eb5afad73aca4ae1ef536dd4a1f6638cb 100644 --- a/Assets/Scripts/Library/Enum/CameraBehaviourType.cs +++ b/Assets/Scripts/Library/Enum/CameraBehaviourType.cs @@ -1,5 +1,6 @@ public enum CameraBehaviourType{ NULL, STATIC, - FOLLOW + FOLLOW, + MOUSE } diff --git a/Assets/Scripts/Library/Interfaces/IArmed.cs b/Assets/Scripts/Library/Interfaces/IArmed.cs index 35c5e8ee2cdf469c9e03bf0c67099d0b893185ff..c75a4e51e7a658a84666bd4871813753c4adca43 100644 --- a/Assets/Scripts/Library/Interfaces/IArmed.cs +++ b/Assets/Scripts/Library/Interfaces/IArmed.cs @@ -3,6 +3,5 @@ using UnityEngine; public interface IArmed{ public float BaseDamage { get; set; } public WeaponObject Weapon { get; set; } - public Vector3 Front { get; } - public Quaternion Rotation { get; } + public Transform Orientation { get; } } diff --git a/ProjectSettings/DynamicsManager.asset b/ProjectSettings/DynamicsManager.asset index c521ed2dbf18ad5edc852599bfda9f70618d4950..818c73dd4c8bed7e3227fc6014516f57769ca8ac 100644 --- a/ProjectSettings/DynamicsManager.asset +++ b/ProjectSettings/DynamicsManager.asset @@ -18,7 +18,7 @@ PhysicsManager: m_ClothInterCollisionDistance: 0 m_ClothInterCollisionStiffness: 0 m_ContactsGeneration: 1 - m_LayerCollisionMatrix: fffcfffffffcfffffffcfffffffffffffffffffffffcfffffffefffffffdffff98fcffff58fcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_LayerCollisionMatrix: fffffffffff0fffffff0fffffff8fffffff0fffffff0fffffffefffffff5ffff81f0ffff41f0ffffc1f0ffff49f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff m_SimulationMode: 0 m_AutoSyncTransforms: 0 m_ReuseCollisionCallbacks: 1 diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 2ad472a77b3f6a487bc0a938381884827aefc77f..6cd419fc84e3ae26d9bc9c118724de2bc2a58f0c 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -11,13 +11,14 @@ TagManager: - Default - TransparentFX - Ignore Raycast - - + - Camera - Water - UI - Player - Enemy - PlayerAttack - EnemyAttack + - EnvironmentAttack - Collectible - - @@ -39,7 +40,6 @@ TagManager: - - - - - m_SortingLayers: - name: Default uniqueID: 0