diff --git a/Assets/Prefabs/Camera/AimingCameraSettings b/Assets/Prefabs/Camera/AimingCameraSettings index bd260434..28168b02 100644 --- a/Assets/Prefabs/Camera/AimingCameraSettings +++ b/Assets/Prefabs/Camera/AimingCameraSettings @@ -1 +1 @@ -{"m_ExcludedPropertiesInInspector":["m_Script"],"m_LockStageInInspector":[],"m_StreamingVersion":20170927,"m_Priority":0,"m_StandbyUpdate":2,"m_LookAt":{"instanceID":-78730},"m_Follow":{"instanceID":-78748},"m_Lens":{"FieldOfView":40.0,"OrthographicSize":10.0,"NearClipPlane":0.10000000149011612,"FarClipPlane":5000.0,"Dutch":0.0,"LensShift":{"x":0.0,"y":0.0}},"m_Transitions":{"m_BlendHint":0,"m_InheritPosition":false,"m_OnCameraLive":{"m_PersistentCalls":{"m_Calls":[]}}},"m_LegacyBlendHint":0,"m_ComponentOwner":{"instanceID":-78954}} \ No newline at end of file +{"m_ExcludedPropertiesInInspector":["m_Script"],"m_LockStageInInspector":[],"m_StreamingVersion":20170927,"m_Priority":0,"m_StandbyUpdate":2,"m_LookAt":{"instanceID":-17144},"m_Follow":{"instanceID":-17162},"m_Lens":{"FieldOfView":40.0,"OrthographicSize":10.0,"NearClipPlane":0.10000000149011612,"FarClipPlane":5000.0,"Dutch":0.0,"LensShift":{"x":0.0,"y":0.0}},"m_Transitions":{"m_BlendHint":0,"m_InheritPosition":false,"m_OnCameraLive":{"m_PersistentCalls":{"m_Calls":[]}}},"m_LegacyBlendHint":0,"m_ComponentOwner":{"instanceID":-17368}} \ No newline at end of file diff --git a/Assets/Prefabs/Camera/FreeLookCameraSettings b/Assets/Prefabs/Camera/FreeLookCameraSettings index 093009c1..0dc58ac9 100644 --- a/Assets/Prefabs/Camera/FreeLookCameraSettings +++ b/Assets/Prefabs/Camera/FreeLookCameraSettings @@ -1 +1 @@ -{"m_ExcludedPropertiesInInspector":["m_Script"],"m_LockStageInInspector":[],"m_StreamingVersion":20170927,"m_Priority":1,"m_StandbyUpdate":0,"m_LookAt":{"instanceID":-78748},"m_Follow":{"instanceID":-78748},"m_CommonLens":true,"m_Lens":{"FieldOfView":40.0,"OrthographicSize":10.0,"NearClipPlane":0.10000000149011612,"FarClipPlane":5000.0,"Dutch":0.0,"LensShift":{"x":0.0,"y":0.0}},"m_Transitions":{"m_BlendHint":0,"m_InheritPosition":false,"m_OnCameraLive":{"m_PersistentCalls":{"m_Calls":[]}}},"m_LegacyBlendHint":0,"m_YAxis":{"Value":5.695676184825755e-20,"m_SpeedMode":0,"m_MaxSpeed":2.0,"m_AccelTime":0.20000000298023225,"m_DecelTime":0.10000000149011612,"m_InputAxisName":"Mouse Y","m_InputAxisValue":0.0,"m_InvertInput":true,"m_MinValue":0.0,"m_MaxValue":1.0,"m_Wrap":false,"m_Recentering":{"m_enabled":false,"m_WaitTime":1.0,"m_RecenteringTime":2.0,"m_LegacyHeadingDefinition":-1,"m_LegacyVelocityFilterStrength":-1}},"m_YAxisRecentering":{"m_enabled":true,"m_WaitTime":1.0,"m_RecenteringTime":2.0,"m_LegacyHeadingDefinition":-1,"m_LegacyVelocityFilterStrength":-1},"m_XAxis":{"Value":95.9837417602539,"m_SpeedMode":0,"m_MaxSpeed":400.0,"m_AccelTime":0.10000000149011612,"m_DecelTime":0.10000000149011612,"m_InputAxisName":"Mouse X","m_InputAxisValue":0.0,"m_InvertInput":false,"m_MinValue":-180.0,"m_MaxValue":180.0,"m_Wrap":true,"m_Recentering":{"m_enabled":false,"m_WaitTime":1.0,"m_RecenteringTime":2.0,"m_LegacyHeadingDefinition":-1,"m_LegacyVelocityFilterStrength":-1}},"m_Heading":{"m_Definition":2,"m_VelocityFilterStrength":4,"m_Bias":0.0},"m_RecenterToTargetHeading":{"m_enabled":false,"m_WaitTime":1.0,"m_RecenteringTime":0.0,"m_LegacyHeadingDefinition":-1,"m_LegacyVelocityFilterStrength":-1},"m_BindingMode":4,"m_SplineCurvature":0.20000000298023225,"m_Orbits":[{"m_Height":5.0,"m_Radius":3.0},{"m_Height":2.0,"m_Radius":5.0},{"m_Height":-1.0,"m_Radius":3.0}],"m_LegacyHeadingBias":3.4028234663852887e38,"m_Rigs":[{"instanceID":-78884},{"instanceID":-78900},{"instanceID":-78916}]} \ No newline at end of file +{"m_ExcludedPropertiesInInspector":["m_Script"],"m_LockStageInInspector":[],"m_StreamingVersion":20170927,"m_Priority":1,"m_StandbyUpdate":0,"m_LookAt":{"instanceID":-17162},"m_Follow":{"instanceID":-17162},"m_CommonLens":true,"m_Lens":{"FieldOfView":40.0,"OrthographicSize":10.0,"NearClipPlane":0.10000000149011612,"FarClipPlane":5000.0,"Dutch":0.0,"LensShift":{"x":0.0,"y":0.0}},"m_Transitions":{"m_BlendHint":0,"m_InheritPosition":false,"m_OnCameraLive":{"m_PersistentCalls":{"m_Calls":[]}}},"m_LegacyBlendHint":0,"m_YAxis":{"Value":0.3296395540237427,"m_SpeedMode":0,"m_MaxSpeed":2.0,"m_AccelTime":0.20000000298023225,"m_DecelTime":0.10000000149011612,"m_InputAxisName":"Mouse Y","m_InputAxisValue":0.0,"m_InvertInput":true,"m_MinValue":0.0,"m_MaxValue":1.0,"m_Wrap":false,"m_Recentering":{"m_enabled":false,"m_WaitTime":1.0,"m_RecenteringTime":2.0,"m_LegacyHeadingDefinition":-1,"m_LegacyVelocityFilterStrength":-1}},"m_YAxisRecentering":{"m_enabled":true,"m_WaitTime":1.0,"m_RecenteringTime":2.0,"m_LegacyHeadingDefinition":-1,"m_LegacyVelocityFilterStrength":-1},"m_XAxis":{"Value":113.64523315429688,"m_SpeedMode":0,"m_MaxSpeed":400.0,"m_AccelTime":0.10000000149011612,"m_DecelTime":0.10000000149011612,"m_InputAxisName":"Mouse X","m_InputAxisValue":0.0,"m_InvertInput":false,"m_MinValue":-180.0,"m_MaxValue":180.0,"m_Wrap":true,"m_Recentering":{"m_enabled":false,"m_WaitTime":1.0,"m_RecenteringTime":2.0,"m_LegacyHeadingDefinition":-1,"m_LegacyVelocityFilterStrength":-1}},"m_Heading":{"m_Definition":2,"m_VelocityFilterStrength":4,"m_Bias":0.0},"m_RecenterToTargetHeading":{"m_enabled":false,"m_WaitTime":1.0,"m_RecenteringTime":0.0,"m_LegacyHeadingDefinition":-1,"m_LegacyVelocityFilterStrength":-1},"m_BindingMode":4,"m_SplineCurvature":0.20000000298023225,"m_Orbits":[{"m_Height":5.0,"m_Radius":3.0},{"m_Height":2.0,"m_Radius":5.0},{"m_Height":-1.0,"m_Radius":3.0}],"m_LegacyHeadingBias":3.4028234663852887e38,"m_Rigs":[{"instanceID":-17298},{"instanceID":-17314},{"instanceID":-17330}]} \ No newline at end of file diff --git a/Assets/Prefabs/Camera/TargetingCameraSettings b/Assets/Prefabs/Camera/TargetingCameraSettings index 9576346e..4f485b44 100644 --- a/Assets/Prefabs/Camera/TargetingCameraSettings +++ b/Assets/Prefabs/Camera/TargetingCameraSettings @@ -1 +1 @@ -{"m_ExcludedPropertiesInInspector":["m_Script"],"m_LockStageInInspector":[],"m_StreamingVersion":20170927,"m_Priority":0,"m_StandbyUpdate":2,"m_LookAt":{"instanceID":-78748},"m_Follow":{"instanceID":-78748},"m_Lens":{"FieldOfView":40.0,"OrthographicSize":10.0,"NearClipPlane":0.10000000149011612,"FarClipPlane":5000.0,"Dutch":0.0,"LensShift":{"x":0.0,"y":0.0}},"m_Transitions":{"m_BlendHint":0,"m_InheritPosition":false,"m_OnCameraLive":{"m_PersistentCalls":{"m_Calls":[]}}},"m_LegacyBlendHint":0,"m_ComponentOwner":{"instanceID":-78936}} \ No newline at end of file +{"m_ExcludedPropertiesInInspector":["m_Script"],"m_LockStageInInspector":[],"m_StreamingVersion":20170927,"m_Priority":0,"m_StandbyUpdate":2,"m_LookAt":{"instanceID":-17162},"m_Follow":{"instanceID":-17162},"m_Lens":{"FieldOfView":40.0,"OrthographicSize":10.0,"NearClipPlane":0.10000000149011612,"FarClipPlane":5000.0,"Dutch":0.0,"LensShift":{"x":0.0,"y":0.0}},"m_Transitions":{"m_BlendHint":0,"m_InheritPosition":false,"m_OnCameraLive":{"m_PersistentCalls":{"m_Calls":[]}}},"m_LegacyBlendHint":0,"m_ComponentOwner":{"instanceID":-17350}} \ No newline at end of file diff --git a/Assets/Prefabs/PrefabsForUI/WeaponWheelUI.prefab b/Assets/Prefabs/PrefabsForUI/WeaponWheelUI.prefab index 1fc88f63..001addcf 100644 --- a/Assets/Prefabs/PrefabsForUI/WeaponWheelUI.prefab +++ b/Assets/Prefabs/PrefabsForUI/WeaponWheelUI.prefab @@ -54,17 +54,17 @@ MonoBehaviour: m_GameObject: {fileID: 160867362354419463} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 0.6096754, b: 0, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 12800000, guid: e3265ab4bf004d28a9537516768c1c75, type: 3} m_FontSize: 30 @@ -180,17 +180,17 @@ MonoBehaviour: m_GameObject: {fileID: 5913406804754071761} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 0 @@ -200,6 +200,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &5913406804901032443 GameObject: m_ObjectHideFlags: 0 @@ -262,17 +263,17 @@ MonoBehaviour: m_GameObject: {fileID: 5913406804901032443} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 0} m_Type: 1 m_PreserveAspect: 0 @@ -282,6 +283,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &5913406805429312753 GameObject: m_ObjectHideFlags: 0 @@ -294,6 +296,7 @@ GameObject: - component: {fileID: 5913406805429312754} - component: {fileID: 5913406805429312755} - component: {fileID: 5913406805429312752} + - component: {fileID: -4303283100483734090} m_Layer: 5 m_Name: WeaponWheelUI m_TagString: Untagged @@ -351,7 +354,7 @@ MonoBehaviour: m_GameObject: {fileID: 5913406805429312753} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} m_Name: m_EditorClassIdentifier: m_UiScaleMode: 0 @@ -364,6 +367,7 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 --- !u!114 &5913406805429312752 MonoBehaviour: m_ObjectHideFlags: 0 @@ -373,7 +377,7 @@ MonoBehaviour: m_GameObject: {fileID: 5913406805429312753} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} m_Name: m_EditorClassIdentifier: m_IgnoreReversedGraphics: 1 @@ -381,6 +385,18 @@ MonoBehaviour: m_BlockingMask: serializedVersion: 2 m_Bits: 4294967295 +--- !u!114 &-4303283100483734090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5913406805429312753} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a041c0c9e5358f428a892993df06db2, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &5913406805553467058 GameObject: m_ObjectHideFlags: 0 @@ -437,17 +453,17 @@ MonoBehaviour: m_GameObject: {fileID: 5913406805553467058} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.39215687} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 21300000, guid: 7f64f7299f6694146845d1cbc8113c49, type: 3} m_Type: 0 m_PreserveAspect: 0 @@ -457,6 +473,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!114 &5913406805553467062 MonoBehaviour: m_ObjectHideFlags: 0 @@ -526,17 +543,17 @@ MonoBehaviour: m_GameObject: {fileID: 5913406805559798496} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 0 @@ -546,6 +563,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &5913406805579672086 GameObject: m_ObjectHideFlags: 0 @@ -602,17 +620,17 @@ MonoBehaviour: m_GameObject: {fileID: 5913406805579672086} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.39215687} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 21300000, guid: 8abbce1f2fdbeeb4fb914a52ffc6a02e, type: 3} m_Type: 0 m_PreserveAspect: 0 @@ -622,6 +640,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!114 &5913406805579672170 MonoBehaviour: m_ObjectHideFlags: 0 @@ -691,17 +710,17 @@ MonoBehaviour: m_GameObject: {fileID: 5913406805632240260} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 0 @@ -711,6 +730,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &5913406806053886970 GameObject: m_ObjectHideFlags: 0 @@ -765,17 +785,17 @@ MonoBehaviour: m_GameObject: {fileID: 5913406806053886970} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 0 @@ -785,6 +805,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &5913406806141185605 GameObject: m_ObjectHideFlags: 0 @@ -841,17 +862,17 @@ MonoBehaviour: m_GameObject: {fileID: 5913406806141185605} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.39215687} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 21300000, guid: 666816e26f90a27498080ae6fa230b5b, type: 3} m_Type: 0 m_PreserveAspect: 0 @@ -861,6 +882,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!114 &5913406806141185625 MonoBehaviour: m_ObjectHideFlags: 0 @@ -974,17 +996,17 @@ MonoBehaviour: m_GameObject: {fileID: 5913406806229476565} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 0 @@ -994,6 +1016,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &5913406806265303409 GameObject: m_ObjectHideFlags: 0 @@ -1048,17 +1071,17 @@ MonoBehaviour: m_GameObject: {fileID: 5913406806265303409} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 0 @@ -1068,6 +1091,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &5913406806319403834 GameObject: m_ObjectHideFlags: 0 @@ -1124,17 +1148,17 @@ MonoBehaviour: m_GameObject: {fileID: 5913406806319403834} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.39215687} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 21300000, guid: d2047794041ca6840b9b69fc60dd3d90, type: 3} m_Type: 0 m_PreserveAspect: 0 @@ -1144,6 +1168,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!114 &5913406806319403838 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1215,17 +1240,17 @@ MonoBehaviour: m_GameObject: {fileID: 5913406806421216929} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.39215687} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 21300000, guid: 184cfadab77a17244bec4f501094a5fc, type: 3} m_Type: 0 m_PreserveAspect: 0 @@ -1235,6 +1260,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!114 &5913406806421216933 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1306,17 +1332,17 @@ MonoBehaviour: m_GameObject: {fileID: 5913406806548488889} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.39215687} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 21300000, guid: 177e32d60162097468893f9f38f90236, type: 3} m_Type: 0 m_PreserveAspect: 0 @@ -1326,6 +1352,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!114 &5913406806548488893 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Controllers/Character/StateMachine/States/BackState.cs b/Assets/Scripts/Controllers/Character/StateMachine/States/BackState.cs index 8cd998f7..8377eefe 100644 --- a/Assets/Scripts/Controllers/Character/StateMachine/States/BackState.cs +++ b/Assets/Scripts/Controllers/Character/StateMachine/States/BackState.cs @@ -1,5 +1,4 @@ using UnityEngine; -using UnityEngine.UI; using System; using RootMotion.Dynamics; using UniRx; @@ -12,27 +11,13 @@ public sealed class BackState : IAwake, IUpdate, ITearDown { #region Constants + private const float ANGULAR_VELOCITY_FADE_SPEED = 0.2f; + private const float ANGULAR_MOVE_SPEED_REDUCTION_INDEX = 0.7f; private const float CAMERA_LOW_SIDE_ANGLE = 45f; private const float CAMERA_HALF_SIDE_ANGLE = 90f; private const float CAMERA_BACK_SIDE_ANGLE = 225f; private const float CAMERA_BACK_ANGLE = 180f; - private const float ANGULAR_VELOCITY_FADE_SPEED = 0.2f; - private const float ANGULAR_MOVE_SPEED_REDUCTION_INDEX = 0.7f; - - private const float WEAPON_WHEEL_MAX_CYCLE_DISTANCE = 15f; - private const float WEAPON_WHEEL_DISTANCE_TO_SET_WEAPON = 7.5f; - private const float WEAPON_WHEEL_PARENT_IMAGE_NON_DEDICATED_ALFA = 0.3f; - private const float WEAPON_WHEEL_CHILD_IMAGE_NON_DEDICATED_ALFA = 0.4f; - private const float WEAPON_WHEEL_PARENT_IMAGE_DEDICATED_ALFA = 0.6f; - private const float WEAPON_WHEEL_CHILD_IMAGE_DEDICATED_ALFA = 0.7f; - private const float WEAPON_WHEEL_PARENT_IMAGE_NON_DEDICATED_SCALE = 0.7f; - private const float WEAPON_WHEEL_CHILD_IMAGE_NON_DEDICATED_SCALE = 0.75f; - private const float WEAPON_WHEEL_IMAGE_DEDICATED_SCALE = 0.85f; - - private const string WEAPON_WHEEL_PANEL_NAME = "Panel"; - private const string WEAPON_WHEEL_CYCLE_NAME = "Cycle"; - #endregion @@ -56,19 +41,15 @@ public sealed class BackState : IAwake, IUpdate, ITearDown private GameObject _weaponWheelUI; private GameObject _buttonsInfoUI; - private WeaponCircle[] _weaponWheelItems; - private WeaponCircle _closestWeaponOnWheel; - private Transform _cameraTransform; - private Transform _weaponWheelTransform; private Vector3 _groundHit; private Vector3 _lastPosition; private Vector3 _currentPosition; - private Text _weaponWheelText; private CharacterSpeedCounter _activeSpeedCounter; private PlayerHealthBarModel _playerHealthBarModel; + private WeaponWheelController _weaponWheelController; private CharacterAnimationEventTypes _lastAnimationEventType; @@ -77,9 +58,7 @@ public sealed class BackState : IAwake, IUpdate, ITearDown private float _targetSpeed; private float _speedChangeLag; private float _currentVelocity; - private float _weaponWheelDistance; - private bool _isWeaponWheelOpen; private bool _isCurrentWeaponWithProjectile; @@ -109,15 +88,8 @@ public BackState(GameContext context, CharacterStateMachine stateMachine) _characterModel = _context.CharacterModel; _inputModel = _context.InputModel; _puppetController = _characterModel.PuppetMaster; - - _weaponWheelUI = GameObject.Instantiate(Data.UIElementsData.WeaponWheelPrefab); - _weaponWheelTransform = _weaponWheelUI.transform. - Find(WEAPON_WHEEL_PANEL_NAME).Find(WEAPON_WHEEL_CYCLE_NAME).transform; - _weaponWheelItems = _weaponWheelUI.transform.Find(WEAPON_WHEEL_PANEL_NAME). - GetComponentsInChildren(); - _weaponWheelText = _weaponWheelUI.transform.GetComponentInChildren(); - InitAllWeaponItemsOnWheel(); + _weaponWheelController = new WeaponWheelController(_characterModel, _inputModel); _standartSpeedCounter = new CharacterSpeedCounter(_characterModel.CharacterCommonSettings.WalkSpeed, _characterModel.CharacterCommonSettings.RunSpeed, _characterModel.CharacterCommonSettings.AccelerationLag, _characterModel.CharacterCommonSettings.DecelerationLag, @@ -138,7 +110,6 @@ public BackState(GameContext context, CharacterStateMachine stateMachine) _buttonsInfoUI = GameObject.Instantiate(Data.UIElementsData.ButtonsInformationPrefab); _cameraTransform = _services.CameraService.CharacterCamera.transform; - CloseWeaponWheel(); GameObject playerHealthBar = GameObject.Instantiate(Data.PlayerHealthBarData.HealthBarPrefab); _playerHealthBarModel = new PlayerHealthBarModel(playerHealthBar, Data.PlayerHealthBarData); @@ -153,7 +124,6 @@ public BackState(GameContext context, CharacterStateMachine stateMachine) public void OnAwake() { _characterModel.PlayerBehavior.SetTakeDamageEvent(TakeDamage); - _inputModel.OnWeaponWheel += ControlWeaponWheelOpen; _inputModel.OnButtonsInfo += OpenCloseButtonsInfoMenu; _inputModel.OnUse += UseInteractiveObject; _inputModel.OnRemoveWeapon += () => OnWeaponChange?.Invoke(); @@ -163,6 +133,12 @@ public void OnAwake() OnTrapPlace += _services.TrapService.PlaceTrap; OnHealthChange += HealthBarUpdate; + _weaponWheelController.OnWheelOpen += _services.CameraService.LockFreeLookCamera; + _weaponWheelController.OnWheelClose += _services.CameraService.UnlockFreeLookCamera; + _weaponWheelController.OnWeaponChange += OnWeaponChange; + _weaponWheelController.OnNewWeapon += GetWeapon; + _weaponWheelController.OnNewTrap += GetTrap; + _characterModel.CurrentWeaponData.Subscribe(OnWeaponChangeHandler); _characterModel.CurrentCharacterState.Subscribe(UpdateSpeedCounterByState); _characterModel.EnemiesInTrigger.ObserveCountChanged(true).Subscribe(OnEnemiesNear); @@ -186,8 +162,8 @@ public void Updating() { GroundCheck(); MovementCheck(); - ControlWeaponWheel(); EnemyHealthBarUpdate(); + _weaponWheelController.Updating(); } #endregion @@ -208,6 +184,13 @@ public void TearDown() OnTrapPlace -= _services.TrapService.PlaceTrap; OnHealthChange -= HealthBarUpdate; + + _weaponWheelController.OnWheelOpen -= _services.CameraService.LockFreeLookCamera; + _weaponWheelController.OnWheelClose -= _services.CameraService.UnlockFreeLookCamera; + _weaponWheelController.OnWeaponChange -= OnWeaponChange; + _weaponWheelController.OnNewWeapon -= GetWeapon; + _weaponWheelController.OnNewTrap -= GetTrap; + _characterModel.CurrentWeaponData.Dispose(); _characterModel.CurrentCharacterState.Dispose(); _characterModel.EnemiesInTrigger.Dispose(); @@ -217,6 +200,8 @@ public void TearDown() _characterModel.PlayerBehavior.OnTriggerExitHandler -= OnTriggerExitSomething; _characterModel.BehaviorFall.OnPostActivate -= () => _stateMachine. SetState(_stateMachine.CharacterStates[CharacterStatesEnum.KnockedDown]); + + _weaponWheelController.TearDown(); } #endregion @@ -387,199 +372,6 @@ private void MovementCheck() #endregion - #region WeaponWheelControls - - private void ControlWeaponWheelOpen(bool doOpen) - { - if (doOpen) - { - OpenWeaponWheel(); - } - else - { - CloseWeaponWheel(); - } - } - - private void OpenWeaponWheel() - { - _weaponWheelUI.SetActive(true); - _services.CameraService.LockFreeLookCamera(); - _weaponWheelTransform.localPosition = Vector3.zero; - _closestWeaponOnWheel = null; - _isWeaponWheelOpen = true; - } - - private void CloseWeaponWheel() - { - _weaponWheelUI.SetActive(false); - _services.CameraService.UnlockFreeLookCamera(); - _isWeaponWheelOpen = false; - - if (_closestWeaponOnWheel != null) - { - if (_closestWeaponOnWheel.WeaponData != null) - { - if (_closestWeaponOnWheel.WeaponData != _characterModel.CurrentWeaponData.Value) - { - OnWeaponChange?.Invoke(); - GetWeapon(_closestWeaponOnWheel.WeaponData); - } - } - else if (_closestWeaponOnWheel.TrapData != null) - { - if (_closestWeaponOnWheel.TrapData != _characterModel.CurrentPlacingTrapModel.Value?.TrapData) - { - OnWeaponChange?.Invoke(); - GetTrap(_closestWeaponOnWheel.TrapData); - } - } - else - { - OnWeaponChange?.Invoke(); - } - } - } - - private void ControlWeaponWheel() - { - if (_isWeaponWheelOpen) - { - _weaponWheelTransform.localPosition = new Vector3( - Mathf.Clamp(_weaponWheelTransform.localPosition.x + _inputModel.MouseInputX, - -WEAPON_WHEEL_MAX_CYCLE_DISTANCE, WEAPON_WHEEL_MAX_CYCLE_DISTANCE), - Mathf.Clamp(_weaponWheelTransform.localPosition.y + _inputModel.MouseInputY, - -WEAPON_WHEEL_MAX_CYCLE_DISTANCE, WEAPON_WHEEL_MAX_CYCLE_DISTANCE), - _weaponWheelTransform.localPosition.z); - - float distanceFromCenter = (_weaponWheelTransform.localPosition - Vector3.zero).sqrMagnitude; - - if (distanceFromCenter > WEAPON_WHEEL_MAX_CYCLE_DISTANCE) - { - _weaponWheelTransform.localPosition *= WEAPON_WHEEL_MAX_CYCLE_DISTANCE / distanceFromCenter; - } - - if (distanceFromCenter > WEAPON_WHEEL_DISTANCE_TO_SET_WEAPON) - { - _closestWeaponOnWheel = GetClosestWeaponItemInWheel(); - } - else - { - DisableAllWeaponItemsInWheel(); - _closestWeaponOnWheel = null; - } - } - } - - private WeaponCircle GetClosestWeaponItemInWheel() - { - float minimalDistance = Mathf.Infinity; - float currentDistance = minimalDistance; - WeaponCircle chosenWeapon = null; - - for (int item = 0; item < _weaponWheelItems.Length; item++) - { - currentDistance = (_weaponWheelItems[item].AnchorPosition - _weaponWheelTransform.localPosition). - sqrMagnitude; - - if (currentDistance < minimalDistance) - { - minimalDistance = currentDistance; - chosenWeapon = _weaponWheelItems[item]; - } - } - - if (_closestWeaponOnWheel != chosenWeapon) - { - SetActivityOfElementOnWeaponWheel(_closestWeaponOnWheel, false); - SetActivityOfElementOnWeaponWheel(chosenWeapon, true); - } - - return chosenWeapon; - } - - private void DisableAllWeaponItemsInWheel() - { - foreach (var item in _weaponWheelItems) - { - SetActivityOfElementOnWeaponWheel(item, false); - } - } - - private void InitAllWeaponItemsOnWheel() - { - foreach (var item in _weaponWheelItems) - { - Image[] images = item.GetComponentsInChildren(); - RectTransform[] rects = item.GetComponentsInChildren(); - - if (item.WeaponData != null) - { - item.GetComponentsInChildren()[1].sprite = item.WeaponData.WeaponImage; - images[1].color = new Color(1f, 1f, 1f, WEAPON_WHEEL_CHILD_IMAGE_NON_DEDICATED_ALFA); - } - else if (item.TrapData != null) - { - item.GetComponentsInChildren()[1].sprite = item.TrapData.TrapImage; - images[1].color = new Color(1f, 1f, 1f, WEAPON_WHEEL_CHILD_IMAGE_NON_DEDICATED_ALFA); - } - else - { - images[1].color = new Color(1f, 1f, 1f, 0f); - } - - images[0].color = new Color(1f, 1f, 1f, WEAPON_WHEEL_PARENT_IMAGE_NON_DEDICATED_ALFA); - rects[0].localScale = new Vector3(WEAPON_WHEEL_PARENT_IMAGE_NON_DEDICATED_SCALE, - WEAPON_WHEEL_PARENT_IMAGE_NON_DEDICATED_SCALE, 1f); - rects[1].localScale = new Vector3(WEAPON_WHEEL_CHILD_IMAGE_NON_DEDICATED_SCALE, - WEAPON_WHEEL_PARENT_IMAGE_NON_DEDICATED_SCALE, 1f); - } - } - - private void SetActivityOfElementOnWeaponWheel(WeaponCircle item, bool doActivate) - { - if (item != null) - { - Image[] images = item.GetComponentsInChildren(); - RectTransform[] rects = item.GetComponentsInChildren(); - - if (doActivate && item.IsNotEmpty) - { - images[0].color = new Color(1f, 1f, 1f, WEAPON_WHEEL_PARENT_IMAGE_DEDICATED_ALFA); - images[1].color = new Color(1f, 1f, 1f, WEAPON_WHEEL_CHILD_IMAGE_DEDICATED_ALFA); - - rects[0].localScale = new Vector3(WEAPON_WHEEL_IMAGE_DEDICATED_SCALE, - WEAPON_WHEEL_IMAGE_DEDICATED_SCALE, 1f); - rects[1].localScale = new Vector3(WEAPON_WHEEL_IMAGE_DEDICATED_SCALE, - WEAPON_WHEEL_IMAGE_DEDICATED_SCALE, 1f); - - if (item.WeaponData != null) - { - _weaponWheelText.text = item.WeaponData.WeaponName; - } - else if (item.TrapData != null) - { - _weaponWheelText.text = item.TrapData.TrapStruct.TrapName; - } - } - else if (item.IsNotEmpty) - { - images[0].color = new Color(1f, 1f, 1f, WEAPON_WHEEL_PARENT_IMAGE_NON_DEDICATED_ALFA); - images[1].color = new Color(1f, 1f, 1f, WEAPON_WHEEL_CHILD_IMAGE_NON_DEDICATED_ALFA); - - rects[0].localScale = new Vector3(WEAPON_WHEEL_PARENT_IMAGE_NON_DEDICATED_SCALE, - WEAPON_WHEEL_PARENT_IMAGE_NON_DEDICATED_SCALE, 1f); - rects[1].localScale = new Vector3(WEAPON_WHEEL_CHILD_IMAGE_NON_DEDICATED_SCALE, - WEAPON_WHEEL_PARENT_IMAGE_NON_DEDICATED_SCALE, 1f); - - _weaponWheelText.text = string.Empty; - } - } - } - - #endregion - - #region WeaponControl private void GetThrowableWeapon(OneHandedThrowableWeapon weaponData) diff --git a/Assets/Scripts/Controllers/Inventory/WeaponWheelController.cs b/Assets/Scripts/Controllers/Inventory/WeaponWheelController.cs new file mode 100644 index 00000000..1632df8a --- /dev/null +++ b/Assets/Scripts/Controllers/Inventory/WeaponWheelController.cs @@ -0,0 +1,258 @@ +using System; +using UnityEngine; +using UnityEngine.UI; + +namespace BeastHunter +{ + public class WeaponWheelController + { + #region Events + + public event Action OnNewTrap; + public event Action OnNewWeapon; + public event Action OnWeaponChange; + public event Action OnWheelOpen; + public event Action OnWheelClose; + + #endregion + + + #region Fields + + private WeaponWheelModel _weaponWheelModel; + private WeaponWheelView _weaponWheelView; + private GameObject _weaponUI; + private readonly CharacterModel _characterModel; + private readonly InputModel _inputModel; + + #endregion + + + #region ClassLifeCycles + + public WeaponWheelController(CharacterModel characterModel, InputModel inputModel) + { + _characterModel = characterModel; + _inputModel = inputModel; + _weaponWheelModel = new WeaponWheelModel(); + _weaponUI = GameObject.Instantiate(Data.UIElementsData.WeaponWheelPrefab); + _weaponWheelView = _weaponUI.GetComponent(); + _weaponWheelView.Init(_weaponWheelModel.WeaponWheelPanelName, _weaponWheelModel.WeaponWheelCycleName, _weaponUI); + InitAllWeaponItemsOnWheel(); + CloseWeaponWheel(); + + _inputModel.OnWeaponWheel += ControlWeaponWheelOpen; + } + + #endregion + + + #region IUpdate + + public void Updating() + { + ControlWeaponWheel(); + } + + #endregion + + + #region WeaponWheelControls + + private void ControlWeaponWheelOpen(bool doOpen) + { + if (doOpen) + { + OpenWeaponWheel(); + } + else + { + CloseWeaponWheel(); + } + } + + private void OpenWeaponWheel() + { + _weaponWheelView.WeaponWheelUI.SetActive(true); + OnWheelOpen?.Invoke(); + _weaponWheelView.WeaponWheelTransform.localPosition = Vector3.zero; + _weaponWheelModel.AssignClosestWeaponOnWheel(null); + _weaponWheelModel.AssightIsWeaponWheelOpen(true); + } + + private void CloseWeaponWheel() + { + _weaponWheelView.WeaponWheelUI.SetActive(false); + OnWheelClose?.Invoke(); + _weaponWheelModel.AssightIsWeaponWheelOpen(false); + + if (_weaponWheelModel.ClosestWeaponOnWheel != null) + { + if (_weaponWheelModel.ClosestWeaponOnWheel.WeaponData != null) + { + if (_weaponWheelModel.ClosestWeaponOnWheel.WeaponData != _characterModel.CurrentWeaponData.Value) + { + OnWeaponChange?.Invoke(); + OnNewWeapon?.Invoke(_weaponWheelModel.ClosestWeaponOnWheel.WeaponData); + } + } + else if (_weaponWheelModel.ClosestWeaponOnWheel.TrapData != null) + { + if (_weaponWheelModel.ClosestWeaponOnWheel.TrapData != _characterModel.CurrentPlacingTrapModel.Value?.TrapData) + { + OnWeaponChange?.Invoke(); + OnNewTrap?.Invoke(_weaponWheelModel.ClosestWeaponOnWheel.TrapData); + } + } + else + { + OnWeaponChange?.Invoke(); + } + } + } + + private void ControlWeaponWheel() + { + if (_weaponWheelModel.IsWeaponWheelOpen) + { + _weaponWheelView.WeaponWheelTransform.localPosition = new Vector3( + Mathf.Clamp(_weaponWheelView.WeaponWheelTransform.localPosition.x + _inputModel.MouseInputX, + -_weaponWheelModel.WeaponWheelMaxCycleDistance, _weaponWheelModel.WeaponWheelMaxCycleDistance), + Mathf.Clamp(_weaponWheelView.WeaponWheelTransform.localPosition.y + _inputModel.MouseInputY, + -_weaponWheelModel.WeaponWheelMaxCycleDistance, _weaponWheelModel.WeaponWheelMaxCycleDistance), + _weaponWheelView.WeaponWheelTransform.localPosition.z); + + float distanceFromCenter = (_weaponWheelView.WeaponWheelTransform.localPosition - Vector3.zero).sqrMagnitude; + + if (distanceFromCenter > _weaponWheelModel.WeaponWheelMaxCycleDistance) + { + _weaponWheelView.WeaponWheelTransform.localPosition *= _weaponWheelModel.WeaponWheelMaxCycleDistance / distanceFromCenter; + } + + if (distanceFromCenter > _weaponWheelModel.WeaponWheelDistanceToSetWeapon) + { + _weaponWheelModel.AssignClosestWeaponOnWheel(GetClosestWeaponItemInWheel()); + } + else + { + DisableAllWeaponItemsInWheel(); + _weaponWheelModel.AssignClosestWeaponOnWheel(null); + } + } + } + + private WeaponCircle GetClosestWeaponItemInWheel() + { + float minimalDistance = Mathf.Infinity; + float currentDistance = minimalDistance; + WeaponCircle chosenWeapon = null; + + for (int item = 0; item < _weaponWheelView.WeaponWheelItems.Length; item++) + { + currentDistance = (_weaponWheelView.WeaponWheelItems[item].AnchorPosition - + _weaponWheelView.WeaponWheelTransform.localPosition). + sqrMagnitude; + + if (currentDistance < minimalDistance) + { + minimalDistance = currentDistance; + chosenWeapon = _weaponWheelView.WeaponWheelItems[item]; + } + } + + if (_weaponWheelModel.ClosestWeaponOnWheel != chosenWeapon) + { + SetActivityOfElementOnWeaponWheel(_weaponWheelModel.ClosestWeaponOnWheel, false); + SetActivityOfElementOnWeaponWheel(chosenWeapon, true); + } + + return chosenWeapon; + } + + private void DisableAllWeaponItemsInWheel() + { + foreach (var item in _weaponWheelView.WeaponWheelItems) + { + SetActivityOfElementOnWeaponWheel(item, false); + } + } + + private void InitAllWeaponItemsOnWheel() + { + foreach (var item in _weaponWheelView.WeaponWheelItems) + { + Image[] images = item.GetComponentsInChildren(); + RectTransform[] rects = item.GetComponentsInChildren(); + + if (item.WeaponData != null) + { + item.GetComponentsInChildren()[1].sprite = item.WeaponData.WeaponImage; + images[1].color = new Color(1f, 1f, 1f, _weaponWheelModel.WeaponWheelChildImageNonDedicatedAlfa); + } + else if (item.TrapData != null) + { + item.GetComponentsInChildren()[1].sprite = item.TrapData.TrapImage; + images[1].color = new Color(1f, 1f, 1f, _weaponWheelModel.WeaponWheelChildImageNonDedicatedAlfa); + } + else + { + images[1].color = new Color(1f, 1f, 1f, 0f); + } + + images[0].color = new Color(1f, 1f, 1f, _weaponWheelModel.WeaponWheelParentImageNonDedicatedAlfa); + rects[0].localScale = new Vector3(_weaponWheelModel.WeaponWheelParentImageNonDedicatedAlfa, + _weaponWheelModel.WeaponWheelParentImageNonDedicatedScale, 1f); + rects[1].localScale = new Vector3(_weaponWheelModel.WeaponWheelChildImageNonDedicatedScale, + _weaponWheelModel.WeaponWheelParentImageNonDedicatedScale, 1f); + } + } + + private void SetActivityOfElementOnWeaponWheel(WeaponCircle item, bool doActivate) + { + if (item != null) + { + Image[] images = item.GetComponentsInChildren(); + RectTransform[] rects = item.GetComponentsInChildren(); + + if (doActivate && item.IsNotEmpty) + { + images[0].color = new Color(1f, 1f, 1f, _weaponWheelModel.WeaponWheelParentImageDedicatedAlfa); + images[1].color = new Color(1f, 1f, 1f, _weaponWheelModel.WeaponWheelChildImageDedicatedAlfa); + + rects[0].localScale = new Vector3(_weaponWheelModel.WeaponWheelImageDedicatedScale, + _weaponWheelModel.WeaponWheelImageDedicatedScale, 1f); + rects[1].localScale = new Vector3(_weaponWheelModel.WeaponWheelImageDedicatedScale, + _weaponWheelModel.WeaponWheelImageDedicatedScale, 1f); + + if (item.WeaponData != null) + { + _weaponWheelView.WeaponWheelText.text = item.WeaponData.WeaponName; + } + else if (item.TrapData != null) + { + _weaponWheelView.WeaponWheelText.text = item.TrapData.TrapStruct.TrapName; + } + } + else if (item.IsNotEmpty) + { + images[0].color = new Color(1f, 1f, 1f, _weaponWheelModel.WeaponWheelParentImageNonDedicatedAlfa); + images[1].color = new Color(1f, 1f, 1f, _weaponWheelModel.WeaponWheelChildImageNonDedicatedAlfa); + + rects[0].localScale = new Vector3(_weaponWheelModel.WeaponWheelParentImageNonDedicatedScale, + _weaponWheelModel.WeaponWheelParentImageNonDedicatedScale, 1f); + rects[1].localScale = new Vector3(_weaponWheelModel.WeaponWheelChildImageNonDedicatedScale, + _weaponWheelModel.WeaponWheelParentImageNonDedicatedScale, 1f); + + _weaponWheelView.WeaponWheelText.text = string.Empty; + } + } + } + + #endregion + + public void TearDown() + { + _inputModel.OnWeaponWheel -= ControlWeaponWheelOpen; + } + } +} diff --git a/Assets/Scripts/Controllers/Inventory/WeaponWheelController.cs.meta b/Assets/Scripts/Controllers/Inventory/WeaponWheelController.cs.meta new file mode 100644 index 00000000..325b87b1 --- /dev/null +++ b/Assets/Scripts/Controllers/Inventory/WeaponWheelController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f03b25c1c66296b4b9cf1743f8ee84a6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Data/Data.cs b/Assets/Scripts/Data/Data.cs index f5b35742..5b4e84ac 100644 --- a/Assets/Scripts/Data/Data.cs +++ b/Assets/Scripts/Data/Data.cs @@ -5,7 +5,7 @@ namespace BeastHunter { [CreateAssetMenu (fileName = "Data", menuName = "MainData/Data")] - public sealed class Data : ScriptableObject + public sealed class Data : ScriptableObject { #region Fields @@ -89,8 +89,8 @@ public sealed class Data : ScriptableObject private static FallingTreeData _fallingTreeData; private static EnemyHealthBarData _enemyHealthBarData; private static SpawnpointsData _spawnpointsData; - private static OneHandedThrowableWeapon _LureMeatData; - private static OneHandedThrowableWeapon _LureCharcoalData; + private static OneHandedThrowableWeapon _lureMeatData; + private static OneHandedThrowableWeapon _lureCharcoalData; #endregion @@ -553,11 +553,11 @@ public static OneHandedThrowableWeapon LureMeatData { get { - if (_LureMeatData == null) + if (_lureMeatData == null) { - _LureMeatData = Resources.Load("Data/" + Instance._lureMeatDataPath); + _lureMeatData = Resources.Load("Data/" + Instance._lureMeatDataPath); } - return _LureMeatData; + return _lureMeatData; } } @@ -565,11 +565,11 @@ public static OneHandedThrowableWeapon LureCharcoalData { get { - if (_LureCharcoalData == null) + if (_lureCharcoalData == null) { - _LureCharcoalData = Resources.Load("Data/" + Instance._lureCharcoalDataPath); + _lureCharcoalData = Resources.Load("Data/" + Instance._lureCharcoalDataPath); } - return _LureCharcoalData; + return _lureCharcoalData; } } diff --git a/Assets/Scripts/Data/View.meta b/Assets/Scripts/Data/View.meta new file mode 100644 index 00000000..cc7d7744 --- /dev/null +++ b/Assets/Scripts/Data/View.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 77c4bef1aed4b194f81660fdd743ca62 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Data/View/WeaponWheelView.cs b/Assets/Scripts/Data/View/WeaponWheelView.cs new file mode 100644 index 00000000..a71fb263 --- /dev/null +++ b/Assets/Scripts/Data/View/WeaponWheelView.cs @@ -0,0 +1,42 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace BeastHunter +{ + public class WeaponWheelView : MonoBehaviour + { + #region Fields + + private GameObject _weaponWheelUI; + private Transform _weaponWheelTransform; + private Text _weaponWheelText; + private WeaponCircle[] _weaponWheelItems; + + #endregion + + + #region Property + + public GameObject WeaponWheelUI => _weaponWheelUI; + public Transform WeaponWheelTransform => _weaponWheelTransform; + public Text WeaponWheelText => _weaponWheelText; + public WeaponCircle[] WeaponWheelItems => _weaponWheelItems; + + #endregion + + + #region Methods + + public void Init(string wheelPanelName, string wheelCyrcleName, GameObject weaponUI) + { + _weaponWheelUI = weaponUI; + _weaponWheelTransform = WeaponWheelUI.transform. + Find(wheelPanelName).Find(wheelCyrcleName).transform; + _weaponWheelItems = WeaponWheelUI.transform.Find(wheelPanelName). + GetComponentsInChildren(); + _weaponWheelText = WeaponWheelUI.transform.GetComponentInChildren(); + } + + #endregion + } +} diff --git a/Assets/Scripts/Data/View/WeaponWheelView.cs.meta b/Assets/Scripts/Data/View/WeaponWheelView.cs.meta new file mode 100644 index 00000000..3232589f --- /dev/null +++ b/Assets/Scripts/Data/View/WeaponWheelView.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5a041c0c9e5358f428a892993df06db2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Models/WeaponWheelModel.cs b/Assets/Scripts/Models/WeaponWheelModel.cs new file mode 100644 index 00000000..b0537d71 --- /dev/null +++ b/Assets/Scripts/Models/WeaponWheelModel.cs @@ -0,0 +1,68 @@ +namespace BeastHunter +{ + public class WeaponWheelModel + { + #region Constants + + private const float WEAPON_WHEEL_MAX_CYCLE_DISTANCE = 15f; + private const float WEAPON_WHEEL_DISTANCE_TO_SET_WEAPON = 7.5f; + private const float WEAPON_WHEEL_PARENT_IMAGE_NON_DEDICATED_ALFA = 0.3f; + private const float WEAPON_WHEEL_CHILD_IMAGE_NON_DEDICATED_ALFA = 0.4f; + private const float WEAPON_WHEEL_PARENT_IMAGE_DEDICATED_ALFA = 0.6f; + private const float WEAPON_WHEEL_CHILD_IMAGE_DEDICATED_ALFA = 0.7f; + private const float WEAPON_WHEEL_PARENT_IMAGE_NON_DEDICATED_SCALE = 0.7f; + private const float WEAPON_WHEEL_CHILD_IMAGE_NON_DEDICATED_SCALE = 0.75f; + private const float WEAPON_WHEEL_IMAGE_DEDICATED_SCALE = 0.85f; + + private const string WEAPON_WHEEL_PANEL_NAME = "Panel"; + private const string WEAPON_WHEEL_CYCLE_NAME = "Cycle"; + + #endregion + + + #region Fields + + private WeaponCircle _closestWeaponOnWheel; + private float _weaponWheelDistance; + private bool _isWeaponWheelOpen; + + #endregion + + + #region Properties + + public float WeaponWheelMaxCycleDistance => WEAPON_WHEEL_MAX_CYCLE_DISTANCE; + public float WeaponWheelDistanceToSetWeapon => WEAPON_WHEEL_DISTANCE_TO_SET_WEAPON; + public float WeaponWheelParentImageNonDedicatedAlfa => WEAPON_WHEEL_PARENT_IMAGE_NON_DEDICATED_ALFA; + public float WeaponWheelChildImageNonDedicatedAlfa => WEAPON_WHEEL_CHILD_IMAGE_NON_DEDICATED_ALFA; + public float WeaponWheelParentImageDedicatedAlfa => WEAPON_WHEEL_PARENT_IMAGE_DEDICATED_ALFA; + public float WeaponWheelChildImageDedicatedAlfa => WEAPON_WHEEL_CHILD_IMAGE_DEDICATED_ALFA; + public float WeaponWheelParentImageNonDedicatedScale => WEAPON_WHEEL_PARENT_IMAGE_NON_DEDICATED_SCALE; + public float WeaponWheelChildImageNonDedicatedScale => WEAPON_WHEEL_CHILD_IMAGE_NON_DEDICATED_SCALE; + public float WeaponWheelImageDedicatedScale => WEAPON_WHEEL_IMAGE_DEDICATED_SCALE; + + public string WeaponWheelPanelName => WEAPON_WHEEL_PANEL_NAME; + public string WeaponWheelCycleName => WEAPON_WHEEL_CYCLE_NAME; + + public WeaponCircle ClosestWeaponOnWheel => _closestWeaponOnWheel; + public float WeaponWheelDistance => _weaponWheelDistance; + public bool IsWeaponWheelOpen => _isWeaponWheelOpen; + + #endregion + + + #region Methods + + public void AssignClosestWeaponOnWheel(WeaponCircle value) + { + _closestWeaponOnWheel = value; + } + + public void AssightIsWeaponWheelOpen(bool state) + { + _isWeaponWheelOpen = state; + } + + #endregion + } +} diff --git a/Assets/Scripts/Models/WeaponWheelModel.cs.meta b/Assets/Scripts/Models/WeaponWheelModel.cs.meta new file mode 100644 index 00000000..a5fdb59d --- /dev/null +++ b/Assets/Scripts/Models/WeaponWheelModel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9cf4cdf501b7a13469dda706921d93b5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 13685a06..7792902e 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -6,31 +6,31 @@ EditorUserSettings: serializedVersion: 4 m_ConfigSettings: RecentlyUsedScenePath-0: - value: 22424703114646680e0b0227036c6c0417050c06232b27242426137df7ee3d2cfb + value: 22424703114646680e0b0227036c6b0213195806232b27242426137cd6f23136f6a71ae6e43b2b35360ca1290a371526 flags: 0 RecentlyUsedScenePath-1: - value: 22424703114646680e0b0227036c6b0213195806232b27242426137cd6f23136f6a71ae6e43b2b35360ca1290a371526 + value: 224247031146466b011b0b2b1e30102219180c07233c2f3f23662d26f2f0312ccfe625fde22870031d27c2133771233ee1030a45e305031f08 flags: 0 RecentlyUsedScenePath-2: - value: 224247031146466b011b0b2b1e30102219180c07233c2f3f23662d26f2f0312ccfe625fde22870031d27c2133771233ee1030a45e305031f08 + value: 224247031146466b011b0b2b1e30102219180c07233c2f3f23662d26f2f0312ccfe625fde22870031d27c2133771253af31e014bd40a010e034eb52810f31c5a5fd016cc0ed1 flags: 0 RecentlyUsedScenePath-3: - value: 224247031146466b011b0b2b1e30102219180c07233c2f3f23662d26f2f0312ccfe625fde22870031d27c2133771253af31e014bd40a010e034eb52810f31c5a5fd016cc0ed1 + value: 224247031146466b011b0b2b1e30102219180c07233c2f3f23662d26f2f0312ccfe625fde22870031d27c21337712c3afe0f0c4bd1190b095f1bf30705e6 flags: 0 RecentlyUsedScenePath-4: - value: 224247031146466b011b0b2b1e30102219180c07233c2f3f23662d26f2f0312ccfe625fde22870031d27c21337712c3afe0f0c4bd1190b095f1bf30705e6 + value: 224247031146466b011b0b2b1e30102219180c07233c2f3f23662d26f2f0312ccfe625fde22870031d27c2133771333aff051f02f80c4a26041dfe0214ec505b35c008d71fcb1e08ce1d5580d813d8f7cc flags: 0 RecentlyUsedScenePath-5: - value: 224247031146466b011b0b2b1e30102219180c07233c2f3f23662d26f2f0312ccfe625fde22870031d27c2133771333aff051f02f80c4a26041dfe0214ec505b35c008d71fcb1e08ce1d5580d813d8f7cc + value: 22424703114646680e0b0227036c79191816146a05036604283a097cc4e93a39eed81fc2d80e3a2f2d3ddc3f01300471e704001fef flags: 0 RecentlyUsedScenePath-6: - value: 22424703114646680e0b0227036c79191816146a05036604283a097cc4e93a39eed81fc2d80e3a2f2d3ddc3f01300471e704001fef + value: 22424703114646680e0b0227036c7d0510112b2f3e3e2f33281d1820f6af162de4e105ecf52c363f3c36ea2f10701431fb1e10 flags: 0 RecentlyUsedScenePath-7: - value: 22424703114646680e0b0227036c7d0510112b2f3e3e2f33281d1820f6af162de4e105ecf52c363f3c36ea2f10701431fb1e10 + value: 22424703114646680e0b0227036c770518031d386b3b6618382b521bf7ee203df0a71efce57a771a3010fc284437153ae00b1d02f90543450400f41a08 flags: 0 RecentlyUsedScenePath-8: - value: 22424703114646680e0b0227036c770518031d386b3b6618382b521bf7ee203df0a71efce57a771a3010fc284437153ae00b1d02f90543450400f41a08 + value: 22424703114646680e0b0227036c73343f572a2f2a2d3435233a1873d2e9372cf7f533a6cb1e167c1c1aee3114320471e704001fef flags: 0 RecentlyUsedScenePath-9: value: 22424703114646680e0b0227036c73343f572c382926327001261e32f6e93b36adcb12c0a71f273d3412e3394a2b0f36e613