Compare commits

..

6 Commits

Author SHA1 Message Date
08338d6dc7 Merge branch '1vs1' into dev
# Conflicts:
#	Assets/Scenes/DeathScreen.unity
#	Assets/Scenes/MainMenu.unity
#	Assets/ScriptableObjects/PlayerData.cs
#	Assets/Scripts/GameSession/GameSession.cs
#	Assets/Scripts/Player/Player.cs
#	Assets/Scripts/Road/ChunkGenerator.cs
2025-01-15 09:51:22 +01:00
2bf911a312 1V1 logique OK, Manque modif deathscreen 2025-01-14 17:41:14 +01:00
f47def84dd 1V1 OK, GameSession refactor, deathScreen to finish 2025-01-14 17:03:48 +01:00
47d6adf479 1V1 logic OK 2025-01-09 11:44:33 +01:00
2898130a82 Jump and crouch OK, lane broken 2025-01-09 10:18:10 +01:00
ee95dd043f Split screen, controls not workings 2025-01-07 17:26:15 +01:00
46 changed files with 11498 additions and 3893 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,108 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: animationend
serializedVersion: 5
m_AnimatorParameters:
- m_Name: Blend
m_Type: 1
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
- m_Name: Run
m_Type: 4
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
- m_Name: Jump
m_Type: 4
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
- m_Name: Dead
m_Type: 4
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
- m_Name: Slide
m_Type: 4
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
- m_Name: Idle
m_Type: 4
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 7459675453670605269}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1102 &5334629767517593806
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: a_Idle_Happy
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 0
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: e411d29e9f3ed4148a6f9d807e00efcd, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1107 &7459675453670605269
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 5334629767517593806}
m_Position: {x: 10, y: 120, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 30, y: 0, z: 0}
m_EntryPosition: {x: -230, y: 120, z: 0}
m_ExitPosition: {x: 950, y: 170, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 5334629767517593806}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 104b61ba2d831c84e9200f18cdf2cd2f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

16
Assets/DeathScreen1VS1.cs Normal file
View File

@ -0,0 +1,16 @@
using UnityEngine;
public class DeathScreen1VS1 : MonoBehaviour
{
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: ee53811d3959d1b4ca9782e0dfc97ccf

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 0c8ab113f15a70d4083297e24fb728f0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 682d64d1d4474994cba4504e7df89dd0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -215,6 +215,9 @@ RectTransform:
m_Children: m_Children:
- {fileID: 1425101074} - {fileID: 1425101074}
- {fileID: 585937282} - {fileID: 585937282}
- {fileID: 2040053553}
- {fileID: 1715640245}
- {fileID: 641718691}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
@ -222,6 +225,142 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0} m_Pivot: {x: 0, y: 0}
--- !u!1 &180805238
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 180805239}
- component: {fileID: 180805241}
- component: {fileID: 180805240}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &180805239
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 180805238}
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: 1715640245}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &180805240
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 180805238}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
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:
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
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: 1
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 &180805241
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 180805238}
m_CullTransparentMesh: 1
--- !u!1 &352716353 --- !u!1 &352716353
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -279,7 +418,7 @@ MonoBehaviour:
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_text: Button m_text:
m_isRightToLeft: 0 m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
@ -390,6 +529,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
currentPlayer: {fileID: 0} currentPlayer: {fileID: 0}
scoreboard: {fileID: 0} scoreboard: {fileID: 0}
isPlayer2: 0
--- !u!114 &533191357 --- !u!114 &533191357
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -420,6 +560,142 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &565350509
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 565350510}
- component: {fileID: 565350512}
- component: {fileID: 565350511}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &565350510
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 565350509}
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: 2040053553}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &565350511
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 565350509}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
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:
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
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: 1
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 &565350512
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 565350509}
m_CullTransparentMesh: 1
--- !u!1 &585937281 --- !u!1 &585937281
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -433,7 +709,7 @@ GameObject:
- component: {fileID: 585937284} - component: {fileID: 585937284}
- component: {fileID: 585937283} - component: {fileID: 585937283}
m_Layer: 5 m_Layer: 5
m_Name: Button m_Name: SoloMode
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@ -481,10 +757,10 @@ MonoBehaviour:
m_Transition: 1 m_Transition: 1
m_Colors: m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 0} m_NormalColor: {r: 1, g: 1, b: 1, a: 0}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_HighlightedColor: {r: 0.21960786, g: 0.21960786, b: 0.21960786, a: 0}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 0}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0}
m_ColorMultiplier: 1 m_ColorMultiplier: 1
m_FadeDuration: 0.1 m_FadeDuration: 0.1
m_SpriteState: m_SpriteState:
@ -505,7 +781,7 @@ MonoBehaviour:
m_Calls: m_Calls:
- m_Target: {fileID: 533191356} - m_Target: {fileID: 533191356}
m_TargetAssemblyTypeName: GameSession, Assembly-CSharp m_TargetAssemblyTypeName: GameSession, Assembly-CSharp
m_MethodName: GoToGameScene m_MethodName: GoToSoloMode
m_Mode: 1 m_Mode: 1
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}
@ -553,6 +829,139 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 585937281} m_GameObject: {fileID: 585937281}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &641718690
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 641718691}
- component: {fileID: 641718694}
- component: {fileID: 641718693}
- component: {fileID: 641718692}
m_Layer: 5
m_Name: Settings
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &641718691
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 641718690}
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: 1435649214}
m_Father: {fileID: 28337890}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 265.5, y: -153.16}
m_SizeDelta: {x: 177.9763, y: 190.8653}
m_Pivot: {x: 0.5, y: 0.50000006}
--- !u!114 &641718692
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 641718690}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 0}
m_HighlightedColor: {r: 0.21960786, g: 0.21960786, b: 0.21960786, a: 0}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 0}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 641718693}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 533191356}
m_TargetAssemblyTypeName: GameSession, Assembly-CSharp
m_MethodName: GoToSoloMode
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &641718693
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 641718690}
m_Enabled: 1
m_EditorHideFlags: 0
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: 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: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &641718694
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 641718690}
m_CullTransparentMesh: 1
--- !u!1 &705507993 --- !u!1 &705507993
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -776,8 +1185,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0.014961, y: -0.00024796}
m_SizeDelta: {x: 87.32, y: 79.08} m_SizeDelta: {x: 130.55, y: 115.45}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1425101075 --- !u!114 &1425101075
MonoBehaviour: MonoBehaviour:
@ -799,7 +1208,7 @@ MonoBehaviour:
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_Texture: {fileID: 2800000, guid: de8ae31bb102a7848b475b5b60316716, type: 3} m_Texture: {fileID: 2800000, guid: 38c95c0304ff5fa40842726137f20778, type: 3}
m_UVRect: m_UVRect:
serializedVersion: 2 serializedVersion: 2
x: 0 x: 0
@ -814,6 +1223,408 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1425101073} m_GameObject: {fileID: 1425101073}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &1435649213
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1435649214}
- component: {fileID: 1435649216}
- component: {fileID: 1435649215}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1435649214
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1435649213}
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: 641718691}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1435649215
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1435649213}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
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:
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
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: 1
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 &1435649216
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1435649213}
m_CullTransparentMesh: 1
--- !u!1 &1715640244
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1715640245}
- component: {fileID: 1715640248}
- component: {fileID: 1715640247}
- component: {fileID: 1715640246}
m_Layer: 5
m_Name: Skin
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1715640245
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1715640244}
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: 180805239}
m_Father: {fileID: 28337890}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 268, y: 71}
m_SizeDelta: {x: 177.9763, y: 190.8653}
m_Pivot: {x: 0.49999997, y: 0.5}
--- !u!114 &1715640246
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1715640244}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 0}
m_HighlightedColor: {r: 0.21960786, g: 0.21960786, b: 0.21960786, a: 0}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 0}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1715640247}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 533191356}
m_TargetAssemblyTypeName: GameSession, Assembly-CSharp
m_MethodName: GoToSoloMode
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &1715640247
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1715640244}
m_Enabled: 1
m_EditorHideFlags: 0
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: 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: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &1715640248
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1715640244}
m_CullTransparentMesh: 1
--- !u!1 &2040053552
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2040053553}
- component: {fileID: 2040053556}
- component: {fileID: 2040053555}
- component: {fileID: 2040053554}
m_Layer: 5
m_Name: DuoMode
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2040053553
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2040053552}
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: 565350510}
m_Father: {fileID: 28337890}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -112, y: -45.2294}
m_SizeDelta: {x: 201.0648, y: 364.0289}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2040053554
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2040053552}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 0}
m_HighlightedColor: {r: 0.21960786, g: 0.21960786, b: 0.21960786, a: 0}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 0}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 2040053555}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 533191356}
m_TargetAssemblyTypeName: GameSession, Assembly-CSharp
m_MethodName: GoToDuoMode
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &2040053555
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2040053552}
m_Enabled: 1
m_EditorHideFlags: 0
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: 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: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &2040053556
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2040053552}
m_CullTransparentMesh: 1
--- !u!1 &2056363842 --- !u!1 &2056363842
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -314,8 +314,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 412e4ad20c347ce47b62391fe298974c, type: 3} m_Script: {fileID: 11500000, guid: 412e4ad20c347ce47b62391fe298974c, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
currentPlayer: {fileID: 2249596435903131710} player1: {fileID: 2249596435903131710}
player2: {fileID: 0}
scoreboard: {fileID: 634835458} scoreboard: {fileID: 634835458}
isDuoMode: 0
--- !u!4 &93601729 --- !u!4 &93601729
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1999,7 +2001,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
target: {fileID: 2249596435903131709} target: {fileID: 2249596435903131709}
defaultDistance: {x: 0, y: 3, z: -4} defaultDistance: {x: 0, y: 5.9, z: -4}
distanceDamp: 0.15 distanceDamp: 0.15
--- !u!114 &1053166413 --- !u!114 &1053166413
MonoBehaviour: MonoBehaviour:

View File

@ -15,4 +15,6 @@ MonoBehaviour:
<InvincibilityTime>k__BackingField: 600 <InvincibilityTime>k__BackingField: 600
<JumpHeight>k__BackingField: 6 <JumpHeight>k__BackingField: 6
<LaneSwitchSpeed>k__BackingField: 20 <LaneSwitchSpeed>k__BackingField: 20
<Speed>k__BackingField: 10 <CurrentSpeed>k__BackingField: 10
<InitialSpeed>k__BackingField: 10
<SpeedAcceleration>k__BackingField: 0

View File

@ -7,5 +7,7 @@ public class PlayerData : ScriptableObject
[field: SerializeField] public int InvincibilityTime { get; private set; } [field: SerializeField] public int InvincibilityTime { get; private set; }
[field: SerializeField] public float JumpHeight { get; private set; } [field: SerializeField] public float JumpHeight { get; private set; }
[field: SerializeField] public float LaneSwitchSpeed { get; private set; } [field: SerializeField] public float LaneSwitchSpeed { get; private set; }
[field: SerializeField] public float Speed { get; set; } [field: SerializeField] public float CurrentSpeed { get; set; }
[field: SerializeField] public float InitialSpeed { get; private set; }
[field: SerializeField] public float SpeedAcceleration { get; private set; }
} }

View File

@ -36,11 +36,11 @@ public class FollowingCamera : MonoBehaviour
Vector3 moveVector = new Vector3(target.position.x, target.position.y, target.position.z); Vector3 moveVector = new Vector3(target.position.x, target.position.y, target.position.z);
//Quaternion rotationVector = Quaternion.Euler(target.rotation.y, target.rotation.y, defaultTargetRotation.z); //Quaternion rotationVector = Quaternion.Euler(target.rotation.y, target.rotation.y, defaultTargetRotation.z);
//float curveX = GameSession.Instance.Curver.CurveStrengthX; //float curveX = GameSession.Instance.Curver.CurveStrengthX;
//camTransform.rotation = target.rotation; camTransform.rotation = target.rotation;
Vector3 toPos = moveVector + (target.rotation * defaultDistance); Vector3 toPos = moveVector + (target.rotation * defaultDistance);
//Vector3 toPos = target.position + (target.rotation * defaultDistance); //Vector3 toPos = target.position + (target.rotation * defaultDistance);
Vector3 curPos = Vector3.SmoothDamp(camTransform.position, toPos, ref velocity, distanceDamp); Vector3 curPos = Vector3.SmoothDamp(camTransform.position, toPos, ref velocity, distanceDamp);
camTransform.position = curPos; camTransform.position = curPos;
camTransform.LookAt(camTransform, target.up); camTransform.LookAt(target, target.up);
} }
} }

View File

@ -1,19 +1,26 @@
using System.Collections; using System;
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using JetBrains.Annotations;
using UnityEngine; using UnityEngine;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
[RequireComponent(typeof(WorldCurver))] [RequireComponent(typeof(WorldCurver))]
public class GameSession : MonoBehaviour,IResettable public class GameSession : MonoBehaviour,IResettable
{ {
[SerializeField] private Player currentPlayer; [SerializeField] private Player player1;
[SerializeField] [CanBeNull] private Player player2;
[SerializeField] private Scoreboard scoreboard; [SerializeField] private Scoreboard scoreboard;
[SerializeField] private Boolean isDuoMode;
public static GameSession Instance { get; private set; } public static GameSession Instance { get; private set; }
public WorldCurver Curver { get; private set; } public WorldCurver Curver { get; private set; }
private IInputTranslator inputTranslator; private IInputTranslator _player1InputTranslator;
private IInputTranslator _player2InputTranslator;
private bool isSessionPaused = false; public static string MatchResult { get; private set; }
private bool isInputAlreadyRestricted = false; private bool _isSessionPaused = false;
private bool _isInputAlreadyRestricted = false;
private float _speedAtPause;
private void Awake() private void Awake()
{ {
@ -31,7 +38,12 @@ public class GameSession : MonoBehaviour,IResettable
} }
private void Update() private void Update()
{ {
inputTranslator.Tick(); _player1InputTranslator.Tick();
if (isDuoMode)
{
_player2InputTranslator.Tick();
}
Curver.Tick(); Curver.Tick();
// curver.SinCurveX(); // curver.SinCurveX();
// Curver.SinCurveY(); // Curver.SinCurveY();
@ -40,39 +52,52 @@ public class GameSession : MonoBehaviour,IResettable
private void Init() private void Init()
{ {
if (ApplicationUtil.platform == RuntimePlatform.Android || ApplicationUtil.platform == RuntimePlatform.IPhonePlayer) var player1Holder = new KeyBindingHolder();
player1Holder.Init(false);
_player1InputTranslator = new InputTranslator<KeyBinding>(player1Holder, false);
if (isDuoMode)
{ {
IBindingHolder<TouchBinding> touchHolder = new TouchBindingHolder(); var player2Holder = new KeyBindingHolder();
inputTranslator = new InputTranslator<TouchBinding>(touchHolder); player2Holder.Init(true);
} _player2InputTranslator = new InputTranslator<KeyBinding>(player2Holder, true);
else
{
IBindingHolder<KeyBinding> keyHolder = new KeyBindingHolder();
inputTranslator = new InputTranslator<KeyBinding>(keyHolder);
} }
} }
public void AddCommandTranslator(ICommandTranslator translator) public void AddCommandTranslator(ICommandTranslator translator, bool isPlayer2)
{ {
inputTranslator.AddCommandTranslator(translator); if (isPlayer2)
{
_player2InputTranslator.AddCommandTranslator(translator);
}else
{
_player1InputTranslator.AddCommandTranslator(translator);
}
} }
public void PauseSession(bool isPaused) public void PauseSession(bool isPaused)
{ {
Time.timeScale = isPaused ? 0 : 1; if (isPaused)
if (!isSessionPaused && inputTranslator.IsTranslationResticted(InputConstants.InGameCommands)) _speedAtPause = player1.playerData.CurrentSpeed;
else
{ {
isInputAlreadyRestricted = true; player1.playerData.CurrentSpeed = _speedAtPause;
isSessionPaused = isPaused; }
Time.timeScale = isPaused ? 0 : 1;
if (!_isSessionPaused && _player1InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) && _player2InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) )
{
_isInputAlreadyRestricted = true;
_isSessionPaused = isPaused;
return; return;
} }
if (!inputTranslator.IsTranslationResticted(InputConstants.InGameCommands)) if (!_player1InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) && !_player2InputTranslator.IsTranslationResticted(InputConstants.InGameCommands))
{ {
isInputAlreadyRestricted = false; _isInputAlreadyRestricted = false;
} }
isSessionPaused = isPaused; _isSessionPaused = isPaused;
if (isInputAlreadyRestricted) if (_isInputAlreadyRestricted)
{ {
return; return;
} }
@ -81,7 +106,12 @@ public class GameSession : MonoBehaviour,IResettable
public void RestrictInputs(List<ECommand> commands,bool isRestricted) public void RestrictInputs(List<ECommand> commands,bool isRestricted)
{ {
inputTranslator.RestictTranslation(commands, isRestricted); _player1InputTranslator.RestictTranslation(commands, isRestricted);
if (isDuoMode)
{
_player2InputTranslator.RestictTranslation(commands, isRestricted);
}
} }
public void UpdateScoreboard(ScoreboardEntry entry) public void UpdateScoreboard(ScoreboardEntry entry)
@ -89,34 +119,60 @@ public class GameSession : MonoBehaviour,IResettable
scoreboard.AddScoreboardEntry(entry); scoreboard.AddScoreboardEntry(entry);
} }
public void GoToGameScene() private bool isCheckingEquality = false;
public void HandlePlayerDeath(Player deadPlayer)
{ {
StartCoroutine(LoadGameSceneAsync()); if (isDuoMode)
{
if (isCheckingEquality) return;
isCheckingEquality = true;
StartCoroutine(CheckForEquality(deadPlayer));
}
else
{
SceneManager.LoadScene("DeathScreen");
}
} }
private IEnumerator LoadGameSceneAsync() private IEnumerator CheckForEquality(Player deadPlayer)
{ {
AsyncOperation asyncLoad = SceneManager.LoadSceneAsync("GameScene", LoadSceneMode.Single); yield return new WaitForSeconds(0.3f);
asyncLoad.allowSceneActivation = false;
while (!asyncLoad.isDone) if (player1.isDead && player2.isDead)
{ {
// Indiquer la progression de chargement (0 à 0.9) SendResultToDeathScreen("DRAW");
float progress = Mathf.Clamp01(asyncLoad.progress / 0.9f); }
Debug.Log($"Loading progress: {progress * 100}%"); else if (player1.isDead)
// Activer la scène lorsqu'elle est prête
if (asyncLoad.progress >= 0.9f)
{ {
asyncLoad.allowSceneActivation = true; SendResultToDeathScreen("PLAYER2");
}
else if (player2.isDead)
{
SendResultToDeathScreen("PLAYER1");
} }
yield return null; isCheckingEquality = false;
} }
private void SendResultToDeathScreen(string result)
{
MatchResult = result;
SceneManager.LoadScene("DeathScreen1VS1");
}
public void GoToSoloMode()
{
SceneManager.LoadScene("SoloGameScene", LoadSceneMode.Single);
ResetToDefault(); ResetToDefault();
} }
public void GoToDuoMode()
{
SceneManager.LoadScene("DuoGameScene", LoadSceneMode.Single);
ResetToDefault();
}
public void GoToMainMenu() public void GoToMainMenu()
{ {
SceneManager.LoadScene("MainMenu", LoadSceneMode.Single); SceneManager.LoadScene("MainMenu", LoadSceneMode.Single);
@ -126,7 +182,11 @@ public class GameSession : MonoBehaviour,IResettable
public void ResetToDefault() public void ResetToDefault()
{ {
PauseSession(false); PauseSession(false);
if(currentPlayer !=null) if(player1 !=null)
currentPlayer.ResetToDefault(); player1.ResetToDefault();
if (isDuoMode && player2 != null)
{
player2.ResetToDefault();
}
} }
} }

View File

@ -8,6 +8,6 @@ using System.Threading.Tasks;
public interface IBindingHolder<T> where T : IBinding public interface IBindingHolder<T> where T : IBinding
{ {
public Dictionary<ECommand, T> InputBindings { get; } public Dictionary<ECommand, T> InputBindings { get; }
public void Init(); public void Init(Boolean isPlayer2);
} }

View File

@ -1,4 +1,5 @@
using System.Collections; using System;
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
@ -10,17 +11,32 @@ public class KeyBindingHolder : IBindingHolder<KeyBinding>
private readonly Dictionary<ECommand, KeyBinding> DefaultKeyBindings = new Dictionary<ECommand, KeyBinding> private readonly Dictionary<ECommand, KeyBinding> DefaultKeyBindings = new Dictionary<ECommand, KeyBinding>
{ {
{ECommand.NONE, new KeyBinding(KeyCode.None)}, {ECommand.NONE, new KeyBinding(KeyCode.None)},
{ECommand.DOWN, new KeyBinding(KeyCode.DownArrow,KeyCode.S)}, {ECommand.DOWN, new KeyBinding(KeyCode.DownArrow)},
{ECommand.UP, new KeyBinding(KeyCode.UpArrow,KeyCode.W)}, {ECommand.UP, new KeyBinding(KeyCode.UpArrow)},
{ECommand.LEFT, new KeyBinding(KeyCode.LeftArrow,KeyCode.A)}, {ECommand.LEFT, new KeyBinding(KeyCode.LeftArrow)},
{ECommand.RIGHT, new KeyBinding(KeyCode.RightArrow,KeyCode.D)}, {ECommand.RIGHT, new KeyBinding(KeyCode.RightArrow)},
{ECommand.OPEN_SCOREBOARD, new KeyBinding(KeyCode.Tab)}, {ECommand.OPEN_SCOREBOARD, new KeyBinding(KeyCode.Tab)},
{ECommand.OPEN_PAUSE_MENU, new KeyBinding(KeyCode.Escape)} {ECommand.OPEN_PAUSE_MENU, new KeyBinding(KeyCode.Escape)}
}; };
public void Init() private readonly Dictionary<ECommand, KeyBinding> Player2KeyBindings = new Dictionary<ECommand, KeyBinding>
{
{ECommand.DOWN2, new KeyBinding(KeyCode.S)},
{ECommand.UP2, new KeyBinding(KeyCode.Z)},
{ECommand.LEFT2, new KeyBinding(KeyCode.Q)},
{ECommand.RIGHT2, new KeyBinding(KeyCode.D)},
};
public void Init(Boolean isPlayer2)
{ {
if (InputBindings == null) if (InputBindings == null)
if (isPlayer2)
{
InputBindings = Player2KeyBindings;
}
else
{
InputBindings = DefaultKeyBindings; InputBindings = DefaultKeyBindings;
} }
} }
}

View File

@ -1,24 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TouchBindingHolder : IBindingHolder<TouchBinding>
{
public Dictionary<ECommand, TouchBinding> InputBindings { get; private set; }
private readonly Dictionary<ECommand, TouchBinding> DefaultTouchBindings = new Dictionary<ECommand, TouchBinding>
{
{ECommand.NONE, new TouchBinding(ETouchGesture.NONE)},
{ECommand.DOWN, new TouchBinding(ETouchGesture.SWIPE_DOWN)},
{ECommand.UP, new TouchBinding(ETouchGesture.SWIPE_UP)},
{ECommand.LEFT, new TouchBinding(ETouchGesture.SWIPE_LEFT)},
{ECommand.RIGHT, new TouchBinding(ETouchGesture.SWIPE_RIGHT)},
};
public void Init()
{
if (InputBindings == null)
InputBindings = DefaultTouchBindings;
}
}

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 23353de203a94c447af7be38973acc1d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,6 +1,7 @@
 
public enum ECommand public enum ECommand
{ {
#region Player1
NONE = 0, NONE = 0,
LEFT = 1, LEFT = 1,
RIGHT = 2, RIGHT = 2,
@ -8,5 +9,17 @@ public enum ECommand
DOWN = 4, DOWN = 4,
OPEN_SCOREBOARD = 5, OPEN_SCOREBOARD = 5,
SHOOT = 6, SHOOT = 6,
OPEN_PAUSE_MENU = 7 OPEN_PAUSE_MENU = 7,
#endregion
#region Player2
LEFT2 = 8,
RIGHT2 = 9,
UP2 = 10,
DOWN2 = 11,
OPEN_SCOREBOARD2 = 12,
SHOOT2 = 13,
OPEN_PAUSE_MENU2 = 14
#endregion
} }

View File

@ -1,4 +1,5 @@
 
using System;
using System.Collections.Generic; using System.Collections.Generic;
public interface IInputTranslator public interface IInputTranslator
@ -17,11 +18,11 @@ public class InputTranslator<T> : IInputTranslator where T : IBinding
private List<ICommandTranslator> commandTranslators; private List<ICommandTranslator> commandTranslators;
private IBindingHolder<T> bindingHolder; private IBindingHolder<T> bindingHolder;
public InputTranslator(IBindingHolder<T> holder) public InputTranslator(IBindingHolder<T> holder, Boolean isPlayer2)
{ {
commandTranslators = new List<ICommandTranslator>(); commandTranslators = new List<ICommandTranslator>();
bindingHolder = holder; bindingHolder = holder;
bindingHolder.Init(); bindingHolder.Init(isPlayer2);
} }
//public void Init(IBindingHolder<T> holder) //public void Init(IBindingHolder<T> holder)
//{ //{

View File

@ -6,7 +6,7 @@ public class Pause : MonoBehaviour,ICommandTranslator
{ {
private void Start() private void Start()
{ {
GameSession.Instance.AddCommandTranslator(this); GameSession.Instance.AddCommandTranslator(this, false);
} }
public void TranslateCommand(ECommand command, PressedState state) public void TranslateCommand(ECommand command, PressedState state)

View File

@ -41,14 +41,15 @@ public class Health : MonoBehaviour, IDamageable,IHealable, IResettable
} }
public void TakeDamage(int amount) public void TakeDamage(int amount)
{ {
if (CurrentHealth > 0){ // if (CurrentHealth > 0)
CurrentHealth -= amount; // {
if (CurrentHealth <= 0){ // CurrentHealth -= amount;
CurrentHealth = 0; // if (CurrentHealth <= 0){
OnOutOfHealth?.Invoke(); // CurrentHealth = 0;
} // OnOutOfHealth?.Invoke();
OnHealthChanged(this, healthArgs.GetUpdatedArgs(CurrentHealth, MaxHealth)); // }
} // OnHealthChanged(this, healthArgs.GetUpdatedArgs(CurrentHealth, MaxHealth));
// }
} }
public void Heal(int amount) public void Heal(int amount)
{ {

View File

@ -1,6 +1,8 @@
using System;
using System.Collections; using System.Collections;
using UnityEngine; using UnityEngine;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
using UnityEngine.Serialization;
[RequireComponent(typeof(CharacterController))] [RequireComponent(typeof(CharacterController))]
@ -20,18 +22,22 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
private Animator animator; private Animator animator;
[SerializeField] private AnimationCurve jumpDeltaYCurve; [SerializeField] private AnimationCurve jumpDeltaYCurve;
public AnimationCurve JumpDeltaYCurve { get { return jumpDeltaYCurve; } }
public AnimationCurve JumpDeltaYCurve
{
get { return jumpDeltaYCurve; }
}
public PlayerAnimator PlayerAnimator { get; private set; } public PlayerAnimator PlayerAnimator { get; private set; }
#endregion #endregion
#region PlayerComponents #region PlayerComponents
[SerializeField] private PlayerData playerData; [SerializeField] internal PlayerData playerData;
private int initialSpeed;
public IDamageable PlayerHealth { get; private set; } public IDamageable PlayerHealth { get; private set; }
public Statistics PlayerStatictics { get; private set; } public Statistics PlayerStatictics { get; private set; }
public PlayerData PlayerData { get { return playerData; } } public PlayerData PlayerData { get { return playerData; } }
#endregion #endregion
@ -39,7 +45,20 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
#region MovementControl #region MovementControl
[SerializeField] private LaneSystem laneSystem; [SerializeField] private LaneSystem laneSystem;
public LaneSystem LaneSystem { get { return laneSystem; } private set { laneSystem = value; } }
public LaneSystem LaneSystem
{
get
{
return laneSystem;
}
private set
{
laneSystem = value;
}
}
public CharacterController CharacterController { get; private set; } public CharacterController CharacterController { get; private set; }
public PlayerCollider PlayerCollider { get; private set; } public PlayerCollider PlayerCollider { get; private set; }
@ -47,10 +66,13 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
public bool IsInvincible { get; private set; } public bool IsInvincible { get; private set; }
public float InvincibilityTime { get; private set; } //PLAYER DATA ScriptableObject public float InvincibilityTime { get; private set; } //PLAYER DATA ScriptableObject
[SerializeField] private Boolean isPlayer2;
[SerializeField] private Boolean isPlaying1VS1;
public bool isDead = false;
private void Awake() private void Awake()
{ {
GameSession.Instance.AddCommandTranslator(this); GameSession.Instance.AddCommandTranslator(this, isPlayer2);
animator = GetComponent<Animator>(); animator = GetComponent<Animator>();
if (animator) if (animator)
PlayerAnimator = new PlayerAnimator(animator); PlayerAnimator = new PlayerAnimator(animator);
@ -60,12 +82,14 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
PlayerStatictics = GetComponent<Statistics>(); PlayerStatictics = GetComponent<Statistics>();
PlayerStateMachine = new PlayerStateMachine(this); PlayerStateMachine = new PlayerStateMachine(this);
InvincibilityTime = playerData.InvincibilityTime; InvincibilityTime = playerData.InvincibilityTime;
initialSpeed = (int)playerData.Speed; playerData.CurrentSpeed = playerData.InitialSpeed;
} }
private void OnEnable() private void OnEnable()
{ {
PlayerHealth.OnOutOfHealth += Die; PlayerHealth.OnOutOfHealth += Die;
} }
// private void OnDisable() // private void OnDisable()
// { // {
// PlayerHealth.OnOutOfHealth -= Die; // PlayerHealth.OnOutOfHealth -= Die;
@ -78,15 +102,17 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
private void Update() private void Update()
{ {
PlayerData.Speed += 0.0001f; playerData.CurrentSpeed += playerData.SpeedAcceleration / 1000;
// Add smthg to manage the animator speed
PlayerStateMachine.Tick(); PlayerStateMachine.Tick();
} }
private void FixedUpdate() private void FixedUpdate()
{ {
PlayerStateMachine.FixedTick(); PlayerStateMachine.FixedTick();
} }
public float PendingAdditionalOffset { get; private set; } public float PendingAdditionalOffset { get; private set; }
private void OnTriggerEnter(Collider other) private void OnTriggerEnter(Collider other)
{ {
if (other.TryGetComponent(out IDamageDealer damageDealer)) //switch..case if (other.TryGetComponent(out IDamageDealer damageDealer)) //switch..case
@ -99,8 +125,10 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
{ {
damageDealer.DealDamage(component, damageAmount); damageDealer.DealDamage(component, damageAmount);
} }
StartCoroutine(GrantInvincibility()); StartCoroutine(GrantInvincibility());
} }
if (other.TryGetComponent(out IObstacle obstacle)) //switch..case if (other.TryGetComponent(out IObstacle obstacle)) //switch..case
{ {
obstacle.Impact(); obstacle.Impact();
@ -113,11 +141,24 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
private void Die() private void Die()
{ {
PlayerData.Speed = initialSpeed; isDead = true;
PlayerStateMachine.SetState(PlayerStateMachine.PlayerDeadState); PlayerStateMachine.SetState(PlayerStateMachine.PlayerDeadState);
GameSession.Instance.UpdateScoreboard(new ScoreboardEntry(name, PlayerStatictics.Score)); GameSession.Instance.UpdateScoreboard(new ScoreboardEntry(name, PlayerStatictics.Score));
GameSession.Instance.HandlePlayerDeath(this); // Informe GameSession qu'un joueur est mort
SceneManager.LoadScene("DeathScreen"); // PlayerStateMachine.SetState(PlayerStateMachine.PlayerDeadState);
// GameSession.Instance.UpdateScoreboard(new ScoreboardEntry(name, PlayerStatictics.Score));
// if (isPlaying1VS1)
// {
// // SceneManager.LoadScene("DeathScreen1v1");
// SceneManager.LoadScene("Death1VS1");
//
// }
// else
// {
// SceneManager.LoadScene("Death1VS1");
// }
//
} }
public IEnumerator GrantInvincibility() public IEnumerator GrantInvincibility()
@ -126,11 +167,13 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
yield return new WaitForSeconds(InvincibilityTime); yield return new WaitForSeconds(InvincibilityTime);
IsInvincible = false; IsInvincible = false;
} }
private void ReloadAnimator() private void ReloadAnimator()
{ {
if (animator) if (animator)
PlayerAnimator = new PlayerAnimator(animator); PlayerAnimator = new PlayerAnimator(animator);
} }
public void ResetToDefault() public void ResetToDefault()
{ {
PlayerStateMachine.SetState(null); PlayerStateMachine.SetState(null);
@ -138,6 +181,7 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
LaneSystem.ResetToDefault(); LaneSystem.ResetToDefault();
Physics.SyncTransforms(); Physics.SyncTransforms();
ReloadAnimator(); ReloadAnimator();
playerData.CurrentSpeed = playerData.InitialSpeed;
} }
public void TranslateCommand(ECommand command, PressedState state) public void TranslateCommand(ECommand command, PressedState state)
@ -147,15 +191,19 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
switch (command) switch (command)
{ {
case ECommand.RIGHT: case ECommand.RIGHT:
case ECommand.RIGHT2:
PlayerStateMachine.IncreaseTargetLane(); PlayerStateMachine.IncreaseTargetLane();
break; break;
case ECommand.LEFT: case ECommand.LEFT:
case ECommand.LEFT2:
PlayerStateMachine.DecreaseTargetLane(); PlayerStateMachine.DecreaseTargetLane();
break; break;
case ECommand.UP: case ECommand.UP:
case ECommand.UP2:
PlayerStateMachine.SetState(PlayerStateMachine.PlayerJumpState); PlayerStateMachine.SetState(PlayerStateMachine.PlayerJumpState);
break; break;
case ECommand.DOWN: case ECommand.DOWN:
case ECommand.DOWN2:
PlayerStateMachine.SetState(PlayerStateMachine.PlayerSlideState); PlayerStateMachine.SetState(PlayerStateMachine.PlayerSlideState);
break; break;
default: default:
@ -163,4 +211,5 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
} }
} }
} }
} }

View File

@ -12,7 +12,7 @@ public abstract class MovingState : PlayerState
public MovingState(PlayerStateMachine playerStateMachine) : base(playerStateMachine) public MovingState(PlayerStateMachine playerStateMachine) : base(playerStateMachine)
{ {
this.playerSM = playerStateMachine; this.playerSM = playerStateMachine;
speed = playerData.Speed; speed = playerData.CurrentSpeed;
laneSwitchSpeed = playerData.LaneSwitchSpeed; laneSwitchSpeed = playerData.LaneSwitchSpeed;
} }
public override void OnStateEnter(){} public override void OnStateEnter(){}
@ -21,7 +21,7 @@ public abstract class MovingState : PlayerState
public override void Tick() public override void Tick()
{ {
speed = playerData.Speed; speed = playerData.CurrentSpeed;
//HandleDirection(); //HandleDirection();
playerSM.HorizontalDeltaPosition = playerSM.PlayerTransform.forward * speed * Time.deltaTime ; playerSM.HorizontalDeltaPosition = playerSM.PlayerTransform.forward * speed * Time.deltaTime ;
playerSM.HorizontalDeltaPosition += playerSM.PlayerTransform.forward * speed * Time.deltaTime; playerSM.HorizontalDeltaPosition += playerSM.PlayerTransform.forward * speed * Time.deltaTime;

View File

@ -8,12 +8,12 @@ public class ChunkGenerator : MonoBehaviour
[SerializeField] private LaneSystem LaneSystem; [SerializeField] private LaneSystem LaneSystem;
public CoinPool CoinPool { get; private set; } public CoinPool CoinPool { get; private set; }
[field: SerializeField] public List<ObstaclePool> ObstaclePools { get; private set; } [field: SerializeField] public List<ObstaclePool> ObstaclePools { get; private set; }
private bool isFirstChunk = true; private bool _isFirstChunk = true;
public Chunk Generate(Chunk chunkToFill) public Chunk Generate(Chunk chunkToFill)
{ {
if (isFirstChunk) if (_isFirstChunk)
{ {
isFirstChunk = false; _isFirstChunk = false;
return chunkToFill; return chunkToFill;
} }
if (ObstaclePools.IsEmpty()) if (ObstaclePools.IsEmpty())
@ -30,6 +30,11 @@ public class ChunkGenerator : MonoBehaviour
transform.localPosition.y, transform.localPosition.y,
transform.localPosition.z transform.localPosition.z
); );
//TODO: A enlever (pour fix bug)
// if (obstacle.IsOnAllLanes)
// {
// obstacle.transform.localPosition = new Vector3(LaneSystem.CenterLane * LaneSystem.LaneWidth, transform.localPosition.y, transform.localPosition.z);
// }
} }
return chunkToFill; return chunkToFill;
} }

View File

@ -22,7 +22,7 @@ public class Scoreboard : MonoBehaviour, ICommandTranslator
private void Start() private void Start()
{ {
GameSession.Instance.AddCommandTranslator(this); GameSession.Instance.AddCommandTranslator(this, false);
string jsonScoreboardEntries = PlayerPrefs.GetString("ScoreboardEntriesTableTest"); //Binary file string jsonScoreboardEntries = PlayerPrefs.GetString("ScoreboardEntriesTableTest"); //Binary file
ScoreboardEntriesTable entriesTable = JsonUtility.FromJson<ScoreboardEntriesTable>(jsonScoreboardEntries); ScoreboardEntriesTable entriesTable = JsonUtility.FromJson<ScoreboardEntriesTable>(jsonScoreboardEntries);
if (entriesTable == null) if (entriesTable == null)

View File

@ -0,0 +1,51 @@
using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
namespace UI.Views
{
public class DeathScreen1VS1 : MonoBehaviour
{
public TMP_Text Joueur1Text;
public TMP_Text Joueur2Text;
private void Start()
{
if (!string.IsNullOrEmpty(GameSession.MatchResult))
{
switch (GameSession.MatchResult)
{
case "PLAYER1":
Joueur1Text.text = "WINNER !";
Joueur2Text.text = "LOSER !";
break;
case "PLAYER2":
Joueur2Text.text = "WINNER !";
Joueur1Text.text = "LOSER !";
break;
case "DRAW":
Joueur1Text.text = "Draw";
Joueur2Text.text = "Draw";
break;
}
}
else
{
}
}
public void RestartGame()
{
SceneManager.LoadScene("DuoGameScene");
}
public void QuitGame()
{
Application.Quit();
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 80d0e44a44be4982a77850a10cbae2f9
timeCreated: 1736867806

View File

@ -31,7 +31,7 @@ public class PausedView : BaseView
restartButton.onClick.AddListener(() => restartButton.onClick.AddListener(() =>
{ {
GameSession.Instance.GoToGameScene(); GameSession.Instance.GoToSoloMode();
}); });
base.Init(); base.Init();
} }

BIN
Assets/Sprites/Awesome Runner (2).png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: 38c95c0304ff5fa40842726137f20778
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
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: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
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: 0
spriteTessellationDetail: -1
textureType: 0
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: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,39 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!84 &8400000
RenderTexture:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: CameraRenderTexture
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_IsAlphaChannelOptional: 0
serializedVersion: 6
m_Width: 256
m_Height: 256
m_AntiAliasing: 1
m_MipCount: -1
m_DepthStencilFormat: 94
m_ColorFormat: 8
m_MipMap: 0
m_GenerateMips: 1
m_SRGB: 0
m_UseDynamicScale: 0
m_UseDynamicScaleExplicit: 0
m_BindMS: 0
m_EnableCompatibleFormat: 1
m_EnableRandomWrite: 0
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 0
m_MipBias: 0
m_WrapU: 1
m_WrapV: 1
m_WrapW: 1
m_Dimension: 2
m_VolumeDepth: 1
m_ShadowSamplingMode: 2

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 41143e46b20d229409d956aa790eeadf
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 8400000
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Sprites/Deathscreen.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: f3bf48d62eb8db4488ff8d833e011574
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
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: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
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: 0
spriteTessellationDetail: -1
textureType: 0
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: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Sprites/DeathscreenDUO.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: f28a94d15d7a7a640beaf309548e86f2
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
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: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
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: 0
spriteTessellationDetail: -1
textureType: 0
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: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c0550badaad23f34d8372e910bdbb7dc
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,84 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Deathscreen
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: f3bf48d62eb8db4488ff8d833e011574, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2a06e880c1e284440a7916c4444ad2a5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@ -9,10 +9,16 @@ EditorBuildSettings:
path: Assets/Scenes/MainMenu.unity path: Assets/Scenes/MainMenu.unity
guid: c54d72009b3041948937848dfa045fc8 guid: c54d72009b3041948937848dfa045fc8
- enabled: 1 - enabled: 1
path: Assets/Scenes/GameScene.unity path: Assets/Scenes/SoloGameScene.unity
guid: 3fb30ce295307b64c947eb0b96185dfb guid: 3fb30ce295307b64c947eb0b96185dfb
- enabled: 1 - enabled: 1
path: Assets/Scenes/DeathScreen.unity path: Assets/Scenes/DeathScreen.unity
guid: 9fc0d4010bbf28b4594072e72b8655ab guid: 9fc0d4010bbf28b4594072e72b8655ab
- enabled: 1
path: Assets/Scenes/DuoGameScene.unity
guid: 682d64d1d4474994cba4504e7df89dd0
- enabled: 1
path: Assets/Scenes/DeathScreen1VS1.unity
guid: 0c8ab113f15a70d4083297e24fb728f0
m_configObjects: {} m_configObjects: {}
m_UseUCBPForAssetBundles: 0 m_UseUCBPForAssetBundles: 0

View File

@ -2,8 +2,9 @@
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!78 &1 --- !u!78 &1
TagManager: TagManager:
serializedVersion: 2 serializedVersion: 3
tags: [] tags:
- PlayerEyes
layers: layers:
- Default - Default
- TransparentFX - TransparentFX
@ -11,8 +12,8 @@ TagManager:
- -
- Water - Water
- UI - UI
- - Player1
- - Player2
- -
- -
- -
@ -41,3 +42,5 @@ TagManager:
- name: Default - name: Default
uniqueID: 0 uniqueID: 0
locked: 0 locked: 0
m_RenderingLayers:
- Default