diff --git a/Assets/Code/Gameplay/CarController.cs b/Assets/Code/Gameplay/CarController.cs index 3e63f3a..cd4c1aa 100644 --- a/Assets/Code/Gameplay/CarController.cs +++ b/Assets/Code/Gameplay/CarController.cs @@ -4,16 +4,20 @@ using UnityEngine; namespace Code.Gameplay { + [RequireComponent(typeof(Rigidbody))] public class CarController : MonoBehaviour { - [SerializeField] private float motorForce = 150000f; - [SerializeField] private float brakeForce = 300000f; + [Header("Physics")] + [SerializeField] private float motorForce = 150000; + [SerializeField] private float brakeForce = 300000; [SerializeField] private float maxSteerAngle = 25f; - [SerializeField] private float turnSpeed = 50f; - + [SerializeField] private float turnSpeed = 50; + + [Header("Wheels")] [SerializeField] private Transform frontLeftWheel; [SerializeField] private Transform frontRightWheel; - + + [Header("Camera")] [SerializeField] private Transform driverCameraPoint; [SerializeField] private Camera mainCamera; [SerializeField] private float thirdPersonDistance = 6f; @@ -23,12 +27,12 @@ namespace Code.Gameplay private Rigidbody _rb; private bool _isFirstPerson; private IInputService _inputService; + private float _lastSwitchTime; + private const float SwitchCooldown = 0.5f; private void Awake() { _rb = GetComponent(); - _rb.useGravity = true; - _rb.interpolation = RigidbodyInterpolation.Interpolate; } private void Start() @@ -42,9 +46,13 @@ namespace Code.Gameplay { if (_inputService.SwitchCameraPressed) { - _isFirstPerson = !_isFirstPerson; - if (_isFirstPerson) SwitchToFirstPerson(); - else SwitchToThirdPerson(); + if (Time.time - _lastSwitchTime >= SwitchCooldown) + { + _isFirstPerson = !_isFirstPerson; + if (_isFirstPerson) SwitchToFirstPerson(); + else SwitchToThirdPerson(); + _lastSwitchTime = Time.time; + } } } @@ -52,51 +60,56 @@ namespace Code.Gameplay { var input = _inputService.MoveInput; - var force = transform.forward * input.y * motorForce; + var force = transform.forward * (input.y * motorForce); _rb.AddForce(force, ForceMode.Force); if (Mathf.Abs(input.y) < 0.1f && _rb.linearVelocity.magnitude > 0.3f) { - _rb.AddForce(-_rb.linearVelocity * brakeForce * Time.fixedDeltaTime, ForceMode.Force); + _rb.AddForce(-_rb.linearVelocity * (brakeForce * Time.fixedDeltaTime), ForceMode.Force); } - var steer = input.x * maxSteerAngle; - if (frontLeftWheel != null) frontLeftWheel.localRotation = Quaternion.Euler(0, steer, 0); - if (frontRightWheel != null) frontRightWheel.localRotation = Quaternion.Euler(0, steer, 0); + var steerInput = input.x; + if (input.y < 0) + steerInput = -input.x; + + var steer = steerInput * maxSteerAngle; + + if (frontLeftWheel) frontLeftWheel.localRotation = Quaternion.Euler(0, steer, 0); + if (frontRightWheel) frontRightWheel.localRotation = Quaternion.Euler(0, steer, 0); if (!(_rb.linearVelocity.magnitude > 0.5f)) return; - var turn = input.x * turnSpeed * Time.fixedDeltaTime; + var turn = steerInput * turnSpeed * Time.fixedDeltaTime; _rb.MoveRotation(_rb.rotation * Quaternion.Euler(0, turn, 0)); } private void LateUpdate() { - if (mainCamera == null) return; + if (!mainCamera) return; if (_isFirstPerson) { - if (driverCameraPoint == null) return; - - mainCamera.transform.position = driverCameraPoint.position; - mainCamera.transform.rotation = driverCameraPoint.rotation; + if (driverCameraPoint) + { + mainCamera.transform.localPosition = driverCameraPoint.localPosition; + mainCamera.transform.localRotation = driverCameraPoint.localRotation; + } } else { - var targetPos = transform.position - transform.forward * thirdPersonDistance + Vector3.up * thirdPersonHeight; - mainCamera.transform.position = Vector3.Lerp(mainCamera.transform.position, targetPos, cameraFollowSpeed * Time.deltaTime); - mainCamera.transform.LookAt(transform.position + Vector3.up * 1f); + mainCamera.transform.localPosition = new Vector3(0, 5, -8); + mainCamera.transform.localRotation = Quaternion.Euler(20, 0, 0); } } private void SwitchToFirstPerson() { - if (mainCamera != null) mainCamera.fieldOfView = 75; + if (mainCamera) mainCamera.fieldOfView = 75; } private void SwitchToThirdPerson() { - if (mainCamera != null) mainCamera.fieldOfView = 60; + if (mainCamera) mainCamera.fieldOfView = 60; } } } \ No newline at end of file diff --git a/Assets/Resources/Audio/Music/MainMenu.wav b/Assets/Resources/Audio/Music/MainMenu.wav index 8f03d71..1803842 100644 --- a/Assets/Resources/Audio/Music/MainMenu.wav +++ b/Assets/Resources/Audio/Music/MainMenu.wav @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bc08e7bd258d04a2fae9c6a622c14475f7850e3ce03d9ab7d2a97f12215d4660 -size 37744810 +oid sha256:c5a2af6dcee58f9dab4a0c0cc75fb44e50e83b9fd6ee4f09605981f63969adff +size 28400674 diff --git a/Assets/Resources/Prefabs/Mountain.prefab b/Assets/Resources/Prefabs/Mountain.prefab index e66ac08..cbf3310 100644 --- a/Assets/Resources/Prefabs/Mountain.prefab +++ b/Assets/Resources/Prefabs/Mountain.prefab @@ -11,6 +11,7 @@ GameObject: - component: {fileID: 2056073011938203288} - component: {fileID: 8247513924946844800} - component: {fileID: 7585871160293640902} + - component: {fileID: 620721834798213631} m_Layer: 0 m_Name: MountainMesh m_TagString: Untagged @@ -90,6 +91,28 @@ MeshRenderer: m_SortingOrder: 0 m_MaskInteraction: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &620721834798213631 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 110025584485906441} + 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: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: -8351333336715449528, guid: b9504c9e2b470cee78c1ab934c98c164, type: 3} --- !u!1 &1902205009112633233 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Prefabs/RoadBarrier.prefab b/Assets/Resources/Prefabs/RoadBarrier.prefab index d20dce6..0b153ca 100644 --- a/Assets/Resources/Prefabs/RoadBarrier.prefab +++ b/Assets/Resources/Prefabs/RoadBarrier.prefab @@ -43,6 +43,7 @@ GameObject: - component: {fileID: 8495740274838073254} - component: {fileID: 7766791614631462372} - component: {fileID: 55454676905431773} + - component: {fileID: 4016767942310767658} m_Layer: 0 m_Name: RoadBarrierMesh m_TagString: Untagged @@ -122,3 +123,24 @@ MeshRenderer: m_SortingOrder: 0 m_MaskInteraction: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &4016767942310767658 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7498581349674084575} + 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: 2.0137768, y: 1.0310643, z: 1.6193335} + m_Center: {x: -0.000000059604645, y: 0.000000029802322, z: 0.80966675} diff --git a/Assets/Resources/Scenes/Gameplay.unity b/Assets/Resources/Scenes/Gameplay.unity index a9e9819..9e9456a 100644 --- a/Assets/Resources/Scenes/Gameplay.unity +++ b/Assets/Resources/Scenes/Gameplay.unity @@ -119,6 +119,246 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &2841088 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2841089} + - component: {fileID: 2841091} + - component: {fileID: 2841090} + m_Layer: 5 + m_Name: Countdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2841089 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2841088} + 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: 12003999} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -200} + m_SizeDelta: {x: -400, y: 200} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &2841090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2841088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: 3 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 455fab60d8654c315baae5983dd772cb, type: 2} + m_sharedMaterial: {fileID: 2132471366458363271, guid: 455fab60d8654c315baae5983dd772cb, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 200 + m_fontSizeBase: 200 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &2841091 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2841088} + m_CullTransparentMesh: 1 +--- !u!1 &12003995 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 12003999} + - component: {fileID: 12003998} + - component: {fileID: 12003997} + - component: {fileID: 12003996} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &12003996 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 12003995} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &12003997 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 12003995} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &12003998 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 12003995} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &12003999 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 12003995} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2841089} + - {fileID: 1058555471} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} --- !u!1 &400466401 GameObject: m_ObjectHideFlags: 0 @@ -241,6 +481,189 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 534894435} m_Mesh: {fileID: -2432090755550338912, guid: 4a09aca9160fc63dc88949e10a3649e6, type: 3} +--- !u!1 &688391552 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 688391553} + - component: {fileID: 688391555} + - component: {fileID: 688391554} + m_Layer: 5 + m_Name: TimerText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &688391553 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 688391552} + 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: 1058555471} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 450, y: 150} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &688391554 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 688391552} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_text: 99:99:99 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 455fab60d8654c315baae5983dd772cb, type: 2} + m_sharedMaterial: {fileID: 2132471366458363271, guid: 455fab60d8654c315baae5983dd772cb, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 60 + m_fontSizeBase: 60 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &688391555 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 688391552} + m_CullTransparentMesh: 1 +--- !u!1 &1058555470 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1058555471} + - component: {fileID: 1058555472} + m_Layer: 5 + m_Name: TimerWrapper + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1058555471 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1058555470} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 688391553} + - {fileID: 1401344272} + m_Father: {fileID: 12003999} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -50, y: 50} + m_SizeDelta: {x: 600, y: 150} + m_Pivot: {x: 1, y: 0} +--- !u!222 &1058555472 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1058555470} + m_CullTransparentMesh: 1 --- !u!1 &1119188903 GameObject: m_ObjectHideFlags: 0 @@ -368,13 +791,88 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1309977533} serializedVersion: 2 - m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071068} - m_LocalPosition: {x: 0, y: 1.6400006, z: 1.9000001} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 2.3, z: 1.9000001} m_LocalScale: {x: 200, y: 200.00003, z: 200.00003} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2054977524} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1401344271 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1401344272} + - component: {fileID: 1401344274} + - component: {fileID: 1401344273} + m_Layer: 5 + m_Name: TimerImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1401344272 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1401344271} + 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: 1058555471} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 150, y: 150} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1401344273 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1401344271} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, 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_Sprite: {fileID: 716607223, guid: 9623e3476158903c9b038f45303bf7a2, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1401344274 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1401344271} + m_CullTransparentMesh: 1 --- !u!1 &1648788857 GameObject: m_ObjectHideFlags: 0 @@ -505,13 +1003,13 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1648788857} serializedVersion: 2 - m_LocalRotation: {x: 0.2588191, y: 0, z: 0, w: 0.9659258} - m_LocalPosition: {x: 0, y: 7, z: -8} + m_LocalRotation: {x: 0.17364816, y: 0, z: 0, w: 0.9848078} + m_LocalPosition: {x: 0, y: 5, z: -8} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2054977524} - m_LocalEulerAnglesHint: {x: 30, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 20, y: 0, z: 0} --- !u!1 &1779809731 GameObject: m_ObjectHideFlags: 0 @@ -611,7 +1109,7 @@ Rigidbody: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2054977520} serializedVersion: 5 - m_Mass: 1500 + m_Mass: 1200 m_LinearDamping: 0.5 m_AngularDamping: 0.5 m_CenterOfMass: {x: 0, y: 0, z: 0} @@ -629,7 +1127,7 @@ Rigidbody: m_IsKinematic: 0 m_Interpolate: 0 m_Constraints: 80 - m_CollisionDetection: 0 + m_CollisionDetection: 1 --- !u!4 &40168313918781588 Transform: m_ObjectHideFlags: 0 @@ -1070,8 +1568,8 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 848194549794382382} m_Mesh: {fileID: 2959467708922500008, guid: 11c920b8609333bf897af589f07774fb, type: 3} ---- !u!64 &3972578714840332082 -MeshCollider: +--- !u!65 &3972578714840332082 +BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -1088,10 +1586,9 @@ MeshCollider: m_IsTrigger: 0 m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 - m_Convex: 1 - m_CookingOptions: 30 - m_Mesh: {fileID: 2959467708922500008, guid: 11c920b8609333bf897af589f07774fb, type: 3} + serializedVersion: 3 + m_Size: {x: 0.019332556, y: 0.038, z: 0.015} + m_Center: {x: 0, y: -0.0008, z: 0.0073216353} --- !u!4 &4074324645149742691 Transform: m_ObjectHideFlags: 0 @@ -1329,3 +1826,4 @@ SceneRoots: - {fileID: 1779809732} - {fileID: 1196404185} - {fileID: 2054977524} + - {fileID: 12003999} diff --git a/Assets/Resources/Sprites/Timer.png b/Assets/Resources/Sprites/Timer.png new file mode 100644 index 0000000..64e636b --- /dev/null +++ b/Assets/Resources/Sprites/Timer.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79e0a8392e9b5faf3ae9495b31ba438d3824a1d0ef2dc21aa5722c4f86a13d87 +size 57318 diff --git a/Assets/Resources/Sprites/Timer.png.meta b/Assets/Resources/Sprites/Timer.png.meta new file mode 100644 index 0000000..ed8277f --- /dev/null +++ b/Assets/Resources/Sprites/Timer.png.meta @@ -0,0 +1,142 @@ +fileFormatVersion: 2 +guid: 9623e3476158903c9b038f45303bf7a2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: Timer_0 + rect: + serializedVersion: 2 + x: 201 + y: 201 + width: 1518 + height: 1518 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 1846f56f2dd5ddb798014cf55670d346 + internalID: 716607223 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: b0eba225a37ecf4bf91478afba6610c8 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: + - key: SpriteEditor.SliceSettings + value: '{"sliceOnImport":false,"gridCellCount":{"x":1.0,"y":1.0},"gridSpriteSize":{"x":64.0,"y":64.0},"gridSpriteOffset":{"x":0.0,"y":0.0},"gridSpritePadding":{"x":0.0,"y":0.0},"pivot":{"x":0.5,"y":0.5},"pivotPixels":{"x":0.0,"y":0.0},"autoSlicingMethod":0,"spriteAlignment":0,"pivotUnitMode":0,"slicingType":0,"keepEmptyRects":false,"isAlternate":false}' + nameFileIdTable: + Timer_0: 716607223 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: