Commit 4b75dcda authored by saad's avatar saad

add new win and lose sys in msq game

parent d4ba32ba
fileFormatVersion: 2
guid: 745e9c17df962b24a80a69d5da8e5d38
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: d308d9efe86ef6242a75802e1f37de49
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: e5036f96e3c15ea49b96f7ee989dd3c1
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 9e9f7f46a1ba34c338eb95b193ae1327
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: b18b93d4b5d00384ba417df18aeac5a3
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 92a80e6f6cd90464b8f87b98fc72999a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
......@@ -1526,10 +1526,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 1868296225662172060}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 22.572838, y: -25.96685}
m_SizeDelta: {x: 0, y: 51.9337}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 22.572838, y: 0}
m_SizeDelta: {x: 51.9337, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5599785267463442964
CanvasRenderer:
......@@ -1874,10 +1874,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 1868296225662172060}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 267.15555, y: -25.96685}
m_SizeDelta: {x: 0, y: 51.9337}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 267.15555, y: 0}
m_SizeDelta: {x: 51.9337, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5340325998096306428
CanvasRenderer:
......@@ -2987,10 +2987,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 1868296225662172060}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 206.00986, y: -25.96685}
m_SizeDelta: {x: 0, y: 51.9337}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 206.00986, y: 0}
m_SizeDelta: {x: 51.9337, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4280031676036218401
CanvasRenderer:
......@@ -3385,10 +3385,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 1868296225662172060}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 144.8642, y: -25.96685}
m_SizeDelta: {x: 0, y: 51.9337}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 144.8642, y: 0}
m_SizeDelta: {x: 51.9337, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3352223824432655738
CanvasRenderer:
......@@ -3662,10 +3662,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 1868296225662172060}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 83.71851, y: -25.96685}
m_SizeDelta: {x: 0, y: 51.9337}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 83.71851, y: 0}
m_SizeDelta: {x: 51.9337, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2582842219960060486
CanvasRenderer:
......
......@@ -414,7 +414,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
m_AnchoredPosition: {x: 0, y: 728}
m_AnchoredPosition: {x: 0, y: 615}
m_SizeDelta: {x: 463.4949, y: 81.1116}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3132024535439582824
......@@ -1448,6 +1448,7 @@ RectTransform:
- {fileID: 4961162476651227081}
- {fileID: 8112683366544189877}
- {fileID: 7647726495453634921}
- {fileID: 2536730654660907268}
- {fileID: 5665338920870028329}
m_Father: {fileID: 1602679806339155043}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
......@@ -1906,12 +1907,12 @@ MonoBehaviour:
_errorText: {fileID: 6000852385021902395}
_feedbackText: {fileID: 1319640003474925752}
_feedbackBg: {fileID: 6385991289808644217}
_heartIcons:
- {fileID: 1839185051689575283}
- {fileID: 1463790114891023171}
- {fileID: 6906497061828657507}
- {fileID: 6324179362285698079}
- {fileID: 8718153497962865154}
_timerSlider: {fileID: 4131065744857399425}
_timerFill: {fileID: 2049947497551292156}
_timerText: {fileID: 6811180268977847738}
_pointsContainer: {fileID: 5665338920870028329}
_activePointColor: {r: 0.99607843, g: 0.8431373, b: 0, a: 1}
_inactivePointColor: {r: 0.99607843, g: 0.8431373, b: 0, a: 0.57254905}
_resultTitle: {fileID: 7932104573269687284}
_resultScore: {fileID: 8584734869575415088}
_resultCorrect: {fileID: 2439187917061100090}
......@@ -2391,6 +2392,134 @@ CanvasGroup:
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!1 &5077049109148940164
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2536730654660907268}
- component: {fileID: 8474393717436167183}
- component: {fileID: 5735437709676336819}
- component: {fileID: 4131065744857399425}
m_Layer: 0
m_Name: ProgressBg (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2536730654660907268
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5077049109148940164}
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: 4882822261759525515}
m_Father: {fileID: 1058002987118289184}
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: -118}
m_SizeDelta: {x: 80, y: 10}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &8474393717436167183
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5077049109148940164}
m_CullTransparentMesh: 1
--- !u!114 &5735437709676336819
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5077049109148940164}
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: 0.99607843, g: 0.84313726, b: 0, a: 0.36078432}
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: 21300000, guid: b94ad4425888548039a8c69d289a39d6, type: 3}
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: 20
--- !u!114 &4131065744857399425
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5077049109148940164}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Slider
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: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
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: 5735437709676336819}
m_FillRect: {fileID: 4882822261759525515}
m_HandleRect: {fileID: 0}
m_Direction: 0
m_MinValue: 0
m_MaxValue: 1
m_WholeNumbers: 0
m_Value: 1
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
--- !u!1 &5247847653096216629
GameObject:
m_ObjectHideFlags: 0
......@@ -2408,7 +2537,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &8112683366544189877
RectTransform:
m_ObjectHideFlags: 0
......@@ -3463,6 +3592,81 @@ MonoBehaviour:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.AspectRatioFitter
m_AspectMode: 2
m_AspectRatio: 1
--- !u!1 &6297743131404060307
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4882822261759525515}
- component: {fileID: 7649928275423107252}
- component: {fileID: 2049947497551292156}
m_Layer: 0
m_Name: Fill
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4882822261759525515
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6297743131404060307}
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: 2536730654660907268}
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.5}
--- !u!222 &7649928275423107252
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6297743131404060307}
m_CullTransparentMesh: 1
--- !u!114 &2049947497551292156
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6297743131404060307}
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: 0.99607843, g: 0.84313726, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: b94ad4425888548039a8c69d289a39d6, type: 3}
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: 20
--- !u!1 &6318540975440034586
GameObject:
m_ObjectHideFlags: 0
......@@ -4145,7 +4349,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
m_AnchoredPosition: {x: 0, y: 566}
m_AnchoredPosition: {x: 0, y: 453}
m_SizeDelta: {x: 463.4949, y: 81.1116}
m_Pivot: {x: 0.5, y: 0}
--- !u!222 &5137856222187404235
......
......@@ -32,10 +32,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 1707829484576164050}
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: 60, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 330, y: -40}
m_SizeDelta: {x: 60, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5957285601766496015
CanvasRenderer:
......@@ -516,10 +516,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 1707829484576164050}
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: 60, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 105, y: -40}
m_SizeDelta: {x: 60, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5079290846272519439
CanvasRenderer:
......@@ -1111,10 +1111,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 1707829484576164050}
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: 60, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 30, y: -40}
m_SizeDelta: {x: 60, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &9053638878752298013
CanvasRenderer:
......@@ -1374,10 +1374,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 1707829484576164050}
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: 60, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 255, y: -40}
m_SizeDelta: {x: 60, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2144178831353867908
CanvasRenderer:
......@@ -1469,7 +1469,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &1707829484576164050
RectTransform:
m_ObjectHideFlags: 0
......@@ -2024,12 +2024,9 @@ MonoBehaviour:
_errorText: {fileID: 1888003687393058882}
_feedbackText: {fileID: 2061464498023138172}
_feedbackBg: {fileID: 320492187281714621}
_heartIcons:
- {fileID: 7257324222088545947}
- {fileID: 3491027743686837815}
- {fileID: 5915587905652818566}
- {fileID: 3569798678676794223}
- {fileID: 5678064079461600276}
_timerSlider: {fileID: 4960621012079594590}
_timerFill: {fileID: 4686784841726526990}
_timerText: {fileID: 0}
_resultTitle: {fileID: 6869985345037938161}
_resultScore: {fileID: 8194691762656679691}
_resultCorrect: {fileID: 1200142097388316580}
......@@ -2076,10 +2073,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 1707829484576164050}
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: 60, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 180, y: -40}
m_SizeDelta: {x: 60, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &666726255117497837
CanvasRenderer:
......@@ -2365,7 +2362,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &7945613461064983669
RectTransform:
m_ObjectHideFlags: 0
......@@ -2448,6 +2445,134 @@ CanvasGroup:
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!1 &5935320979511335955
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6304791329236256248}
- component: {fileID: 7718892579326822483}
- component: {fileID: 2670197247605771171}
- component: {fileID: 4960621012079594590}
m_Layer: 0
m_Name: ProgressBg
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6304791329236256248
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5935320979511335955}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.118034, y: 1.118034, z: 1.118034}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8506976342555741770}
m_Father: {fileID: 2005858786777306286}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -0.000061035156, y: -129.28867}
m_SizeDelta: {x: -97.47656, y: 10}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &7718892579326822483
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5935320979511335955}
m_CullTransparentMesh: 1
--- !u!114 &2670197247605771171
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5935320979511335955}
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: 0.99607843, g: 0.84313726, b: 0, a: 0.36078432}
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: 21300000, guid: b94ad4425888548039a8c69d289a39d6, type: 3}
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: 20
--- !u!114 &4960621012079594590
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5935320979511335955}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Slider
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: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
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: 2670197247605771171}
m_FillRect: {fileID: 8506976342555741770}
m_HandleRect: {fileID: 0}
m_Direction: 0
m_MinValue: 0
m_MaxValue: 1
m_WholeNumbers: 0
m_Value: 1
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
--- !u!1 &6022528235701236239
GameObject:
m_ObjectHideFlags: 0
......@@ -3532,6 +3657,7 @@ RectTransform:
m_Children:
- {fileID: 9082665831957618640}
- {fileID: 1707829484576164050}
- {fileID: 6304791329236256248}
m_Father: {fileID: 3311281805925192665}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
......@@ -3653,3 +3779,78 @@ MonoBehaviour:
clickColor: {r: 0.2, g: 0.5, b: 1, a: 0.6}
fadeDuration: 0.25
hoverColor: {r: 0.2, g: 0.5, b: 1, a: 0.1}
--- !u!1 &8979857293486381314
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8506976342555741770}
- component: {fileID: 7520568733032220074}
- component: {fileID: 4686784841726526990}
m_Layer: 0
m_Name: Fill
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8506976342555741770
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8979857293486381314}
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: 6304791329236256248}
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.5}
--- !u!222 &7520568733032220074
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8979857293486381314}
m_CullTransparentMesh: 1
--- !u!114 &4686784841726526990
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8979857293486381314}
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: 0.99607843, g: 0.84313726, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: b94ad4425888548039a8c69d289a39d6, type: 3}
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: 20
......@@ -7,10 +7,8 @@ using UnityEngine.Events;
namespace com.al_arcade.cs
{
using System.Linq;
using shared;
using Unity.Cinemachine;
using UnityEngine.SceneManagement;
public enum CsGameState
{
......
......@@ -198,7 +198,6 @@ namespace com.al_arcade.cs
Debug.LogError("[CS] Canvas prefab is missing CsUIManager!");
yield break;
}
}
else
{
......
......@@ -52,6 +52,7 @@ public class McqCompetitor : MonoBehaviour
_manager = manager;
manager.onAnswerGiven?.AddListener(ChangeZLevel);
manager.onGameOver.AddListener(Stop);
manager.onWin?.AddListener(Stop);
}
private void ChangeZLevel(bool correct)
......
......@@ -26,7 +26,9 @@ namespace com.al_arcade.mcq
[SerializeField] private float playerRunSpeed = 12f;
[SerializeField] private float gateSpacing = 4f;
[SerializeField] private float streakBonusThreshold = 3;
[SerializeField] private int totalLives = 5;
// ✅ NEW: how many correct-net answers needed to win (same as CS)
[SerializeField] private int pointsToWin = 5;
[Header("References")]
public McqPlayerRunner player;
......@@ -40,19 +42,23 @@ namespace com.al_arcade.mcq
[SerializeField] private McqGameState _state = McqGameState.Idle;
public McqGameState State => _state;
// MCQ-specific state
private McqQuestion[] _questions;
private int _bestStreak, _lives;
private int _bestStreak;
private List<McqGateController> _activeGates = new();
private int _correctGateIndex = -1;
private Camera _mainCamera;
private bool _isTicking;
// ✅ NEW: CS-style progress counter
// goes +1 on correct, -1 on wrong, clamped to [0, pointsToWin]
private int _deltaChangeInSize;
[Header("MCQ Events")]
public UnityEvent<McqQuestion> onQuestionPresented;
public UnityEvent<int, int> onScoreChanged;
public UnityEvent<int> onLifeLost;
public UnityEvent<int> onGameComplete;
public UnityEvent onGameOver = new UnityEvent();
public UnityEvent onWin = new UnityEvent();
// ─── Singleton ────────────────────────────────────────────────────────
protected override void Awake()
......@@ -60,12 +66,10 @@ namespace com.al_arcade.mcq
if (Instance != null && Instance != this) { Destroy(gameObject); return; }
Instance = this;
base.Awake();
_mainCamera = Camera.main;
onAnswerGiven?.AddListener(CameraFeedback);
}
// ─── BaseGameManager implementation ──────────────────────────────────
protected override string GameTypeKey => "mcq";
protected override IEnumerator FetchQuestions(Action<string> onError)
......@@ -106,26 +110,47 @@ namespace com.al_arcade.mcq
{
player?.SetupManager(this);
competitor?.SetupManager(this);
// Robot getting up animation
yield return new WaitForSeconds(1.5f);
}
protected override void OnTimerTick(float timeLeft)
{
// MCQ doesn't use a global timer - it uses lives
if (timeLeft < 4f && !_isTicking)
{
_isTicking = true;
SSAudioManager.Instance?.Tick(true);
}
else if (timeLeft >= 4f && _isTicking)
{
_isTicking = false;
SSAudioManager.Instance?.Tick(false);
}
uiManager?.SetTimer(timeLeft);
}
protected override IEnumerator OnTimeUp()
{
// MCQ doesn't use a timer
_state = McqGameState.GameOver;
StopPlayerAndCompetitor();
StopAllCoroutines();
CleanupGates();
if (questionDisplay != null) questionDisplay.Hide();
if (_isTicking)
{
_isTicking = false;
SSAudioManager.Instance?.Tick(false);
}
StartCoroutine(LoseSequence());
yield break;
}
// MCQ doesn't use the base timer - disable it
protected override void Update()
{
// Don't call base.Update() - MCQ uses lives, not a timer
if (_state == McqGameState.WaitingForAnswer)
base.Update();
}
// ─── BeginGameplay ───────────────────────────────────────────────────
......@@ -133,14 +158,18 @@ namespace com.al_arcade.mcq
{
_currentIndex = _score = _streak = _correctCount = _wrongCount = 0;
_bestStreak = 0;
_lives = totalLives;
_timerRunning = false; // MCQ doesn't use timer
// ✅ NEW: reset the CS-style progress counter
_deltaChangeInSize = 0;
_timeLeft = McqPrefabBuilder.Instance.startTime;
_timerRunning = true;
if (uiManager != null)
{
uiManager.SetLives(totalLives, totalLives);
uiManager.SetScore(0);
uiManager.SetProgress(0, _questions.Length);
// ✅ NEW: reset the points dots to 0
uiManager.TickPoints(0);
uiManager.ShowGameUI();
}
......@@ -152,7 +181,6 @@ namespace com.al_arcade.mcq
StartCoroutine(GameLoop());
}
// ─── Public API ───────────────────────────────────────────────────────
public void StartWithQuestions(McqQuestion[] questions)
{
_questions = questions;
......@@ -164,12 +192,13 @@ namespace com.al_arcade.mcq
ResetBaseState();
_state = McqGameState.Idle;
_bestStreak = 0;
_lives = totalLives;
_isTicking = false;
// ✅ NEW: reset delta on full reset
_deltaChangeInSize = 0;
_questions = null;
foreach (var g in _activeGates)
if (g != null) { DOTween.Kill(g.transform); Destroy(g.gameObject); }
_activeGates.Clear();
CleanupGates();
StopPlayerAndCompetitor();
if (player != null) player.ResetToStart();
if (uiManager != null) uiManager.ResetUI();
......@@ -177,25 +206,31 @@ namespace com.al_arcade.mcq
}
// ─── Game Loop ───────────────────────────────────────────────────────
// ✅ CHANGED: loop now runs forever (recycling questions if needed)
// the only exits are:
// - _deltaChangeInSize == pointsToWin → victory (inside ProcessAnswer)
// - timer runs out → OnTimeUp fires → lose
// - questions run out without winning → lose here
private IEnumerator GameLoop()
{
while (_currentIndex < _questions.Length && _lives > 0)
while (true)
{
if (_state == McqGameState.GameOver) yield break;
// ✅ CHANGED: if we run out of questions before winning → lose
if (_currentIndex >= _questions.Length)
{
_state = McqGameState.GameOver;
yield return LoseSequence();
yield break;
}
yield return PresentQuestion(_questions[_currentIndex]);
_currentIndex++;
if (uiManager != null)
uiManager.SetProgress(_currentIndex, _questions.Length);
}
if (_lives <= 0)
{
_state = McqGameState.GameOver;
yield return LoseSequence();
}
else
{
_state = McqGameState.GameComplete;
yield return VictorySequence();
if (_state == McqGameState.GameOver ||
_state == McqGameState.GameComplete) yield break;
_currentIndex++;
}
}
......@@ -204,11 +239,12 @@ namespace com.al_arcade.mcq
_state = McqGameState.ShowingQuestion;
yield return null;
if (_state == McqGameState.GameOver) yield break;
if (questionDisplay != null)
questionDisplay.Show(question.question_text, question.source);
onQuestionPresented?.Invoke(question);
_state = McqGameState.WaitingForAnswer;
SpawnGates(question);
......@@ -218,6 +254,7 @@ namespace com.al_arcade.mcq
void OnGateHit(int idx)
{
if (_state == McqGameState.GameOver) return;
answered = true;
wasCorrect = idx == _correctGateIndex;
}
......@@ -232,6 +269,12 @@ namespace com.al_arcade.mcq
float timer = 0;
while (!answered && timer < timeout)
{
if (_state == McqGameState.GameOver)
{
foreach (var gate in _activeGates)
gate.onPlayerEnter -= OnGateHit;
yield break;
}
timer += Time.deltaTime;
yield return null;
}
......@@ -239,9 +282,14 @@ namespace com.al_arcade.mcq
foreach (var gate in _activeGates)
gate.onPlayerEnter -= OnGateHit;
if (_state == McqGameState.GameOver) yield break;
_state = McqGameState.AnswerFeedback;
yield return ProcessAnswer(answered && wasCorrect);
if (_state == McqGameState.GameOver ||
_state == McqGameState.GameComplete) yield break;
foreach (var gate in _activeGates)
{
if (gate != null)
......@@ -255,12 +303,18 @@ namespace com.al_arcade.mcq
_activeGates.Clear();
yield return new WaitForSeconds(0.5f);
if (_state == McqGameState.GameOver ||
_state == McqGameState.GameComplete) yield break;
_state = McqGameState.BetweenQuestions;
if (questionDisplay != null) questionDisplay.Hide();
}
private IEnumerator ProcessAnswer(bool correct)
{
if (_state == McqGameState.GameOver) yield break;
if (correct)
{
_correctCount++;
......@@ -269,6 +323,10 @@ namespace com.al_arcade.mcq
int points = CalculateStreakScore((int)streakBonusThreshold);
_score += points;
// ✅ NEW: move progress bar up like CS
_deltaChangeInSize++;
AdjustTimer(McqPrefabBuilder.Instance.correctAnswerBonusTime);
ShowCorrectFeedback(points);
var audio = SSAudioManager.Instance;
......@@ -288,7 +346,11 @@ namespace com.al_arcade.mcq
{
_wrongCount++;
_streak = 0;
_lives--;
// ✅ NEW: move progress bar down like CS, clamped to 0
_deltaChangeInSize = Mathf.Max(0, _deltaChangeInSize - 1);
AdjustTimer(-McqPrefabBuilder.Instance.wrongAnswerPenaltyTime);
ShowWrongFeedback();
var audio = SSAudioManager.Instance;
......@@ -302,16 +364,63 @@ namespace com.al_arcade.mcq
if (particles != null && player != null)
particles.PlayWrongBurst(player.transform.position + Vector3.up * 2f);
if (uiManager != null) uiManager.SetLives(_lives, totalLives);
onLifeLost?.Invoke(_lives);
Camera.main.DOColor(SSColorPalette.WrongWord, 1).SetEase(Ease.Flash, 2);
}
if (uiManager != null) { uiManager.SetScore(_score); uiManager.SetStreak(_streak); }
if (uiManager != null)
{
uiManager.SetScore(_score);
uiManager.SetStreak(_streak);
// ✅ NEW: update the dots UI like CS
uiManager.TickPoints(_deltaChangeInSize);
}
onAnswerGiven?.Invoke(correct);
onScoreChanged?.Invoke(_score, _streak);
yield return new WaitForSeconds(feedbackDisplayTime);
// ✅ NEW: check win condition AFTER feedback plays
// exactly like CS: if delta hits 5 → victory
if (_deltaChangeInSize >= pointsToWin)
{
_state = McqGameState.GameComplete;
onWin?.Invoke();
onGameOver?.Invoke();
yield return VictorySequence();
}
}
private void AdjustTimer(float delta)
{
UpdateTimerBy(delta);
_timeLeft = Mathf.Clamp(_timeLeft, 0, McqPrefabBuilder.Instance.startTime);
if (_timeLeft < 4f && !_isTicking)
{ _isTicking = true; SSAudioManager.Instance?.Tick(true); }
else if (_timeLeft >= 4f && _isTicking)
{ _isTicking = false; SSAudioManager.Instance?.Tick(false); }
uiManager?.UpdateTimer(_timeLeft, delta > 0);
}
private void StopPlayerAndCompetitor()
{
onWin?.Invoke();
onGameOver?.Invoke();
}
private void CleanupGates()
{
foreach (var g in _activeGates)
{
if (g != null)
{
DOTween.Kill(g.transform);
Destroy(g.gameObject);
}
}
_activeGates.Clear();
}
// ─── Gate Spawning ───────────────────────────────────────────────────
......@@ -428,13 +537,12 @@ namespace com.al_arcade.mcq
private void CameraFeedback(bool correct)
{
_mainCamera.DOFieldOfView(correct ? 85f : 80f, 0.2f).SetEase(Ease.OutQuad);
_mainCamera.DOFieldOfView(correct ? 78f : 76f, 0.2f).SetEase(Ease.OutQuad);
}
// ─── End Sequences ───────────────────────────────────────────────────
protected override IEnumerator SharedVictorySequence()
{
Debug.Log("MCQ victory sequence");
var audio = SSAudioManager.Instance;
if (audio != null)
{
......@@ -459,7 +567,8 @@ namespace com.al_arcade.mcq
protected override IEnumerator SharedLoseSequence()
{
Debug.Log("MCQ game over");
StopPlayerAndCompetitor();
var audio = SSAudioManager.Instance;
if (audio != null)
{
......@@ -479,8 +588,6 @@ namespace com.al_arcade.mcq
onGameOver?.Invoke();
}
// ─── MCQ-specific accessors ──────────────────────────────────────────
public int Lives => _lives;
public int BestStreak => _bestStreak;
public int TotalQuestions => _questions?.Length ?? 0;
}
......
......@@ -60,6 +60,7 @@ namespace com.al_arcade.mcq
_manager = manager;
manager.onAnswerGiven?.AddListener(PlayAnimation);
manager.onGameOver?.AddListener(Stop);
manager.onWin?.AddListener(Stop);
}
private void PlayAnimation(bool correct)
......
......@@ -7,12 +7,14 @@ using TMPro;
namespace com.al_arcade.mcq
{
using com.al_arcade.cs;
using shared;
[AddComponentMenu("Science Street/MCQ Prefab Builder")]
public class McqPrefabBuilder : MonoBehaviour
{
public static McqPrefabBuilder Instance { get; private set; }
[Header("Scene Environment")]
[Tooltip("Your full road/environment prefab. Spawned at origin.")]
......@@ -90,6 +92,11 @@ namespace com.al_arcade.mcq
[SerializeField] private float runSpeed = 12f;
[SerializeField] private int lives = 3;
[Header("Timer Settings")]
public int startTime = 30;
public int correctAnswerBonusTime = 3;
public int wrongAnswerPenaltyTime = 2;
[Header("Debug")]
[SerializeField] private bool useOfflineTestData = false;
......@@ -102,6 +109,7 @@ namespace com.al_arcade.mcq
private void Start()
{
Instance = this;
DOTween.Init();
if (arabicFont != null) SSFontManager.Font = arabicFont;
StartCoroutine(BuildEverything());
......
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
// using ALArcade.ArabicTMP;
namespace com.al_arcade.mcq
{
using DG.Tweening;
using LightSide;
using shared;
using System.Collections.Generic;
using UnityEngine.SceneManagement;
public class McqUIManager : MonoBehaviour
{
private Canvas _canvas;
[Header("CanvasGroups")]
[SerializeField] private CanvasGroup _gameUI;
[SerializeField] private CanvasGroup _loadingUI;
......@@ -28,7 +29,19 @@ namespace com.al_arcade.mcq
[SerializeField] private UniText _errorText;
[SerializeField] private UniText _feedbackText;
[SerializeField] private Image _feedbackBg;
[SerializeField] private Image[] _heartIcons;
// ❌ REMOVED: Image[] _heartIcons — replaced by points dots
[Header("Timer UI")]
[SerializeField] private Slider _timerSlider;
[SerializeField] private Image _timerFill;
[SerializeField] private UniText _timerText;
// ✅ NEW: CS-style points dots (same as CsUIManager)
[Header("Points UI")]
[SerializeField] private Transform _pointsContainer;
[SerializeField] private Color _activePointColor;
[SerializeField] private Color _inactivePointColor;
[Header("Results UI")]
[SerializeField] private UniText _resultTitle;
......@@ -45,233 +58,48 @@ namespace com.al_arcade.mcq
[Header("Events")]
public UnityEvent onRestartClicked;
[SerializeField] CanvasGroup redImage;
[SerializeField] private CanvasGroup redImage;
// ✅ NEW: cached from CsUIManager pattern
private Color _timerDefaultColor;
private bool _isTweening;
// ✅ NEW: points images list — built from _pointsContainer children
private List<Image> _pointImages = new();
private void Awake()
{
if (_gameUI != null)
{
_gameUI.alpha = 0; _gameUI.gameObject.SetActive(false);
}
if (_loadingUI != null)
{
_loadingUI.alpha = 0; _loadingUI.gameObject.SetActive(false);
}
if (_errorUI != null)
{
_errorUI.alpha = 0; _errorUI.gameObject.SetActive(false);
}
if (_resultsUI != null)
{
_resultsUI.alpha = 0; _resultsUI.gameObject.SetActive(false);
}
if (_feedbackUI != null)
{
_feedbackUI.alpha = 0; _feedbackUI.gameObject.SetActive(true);
}
if (_gameUI != null) { _gameUI.alpha = 0; _gameUI.gameObject.SetActive(false); }
if (_loadingUI != null) { _loadingUI.alpha = 0; _loadingUI.gameObject.SetActive(false); }
if (_errorUI != null) { _errorUI.alpha = 0; _errorUI.gameObject.SetActive(false); }
if (_resultsUI != null) { _resultsUI.alpha = 0; _resultsUI.gameObject.SetActive(false); }
if (_feedbackUI != null) { _feedbackUI.alpha = 0; _feedbackUI.gameObject.SetActive(true); }
if (_winIcon != null) _winIcon.SetActive(false);
if (_loseIcon != null) _loseIcon.SetActive(false);
// ✅ NEW: cache timer default color
if (_timerFill != null)
_timerDefaultColor = _timerFill.color;
}
public void BuildUI()
{
// var canvasObj = new GameObject("McqCanvas");
// canvasObj.transform.SetParent(transform);
// _canvas = canvasObj.AddComponent<Canvas>();
// _canvas.renderMode = RenderMode.ScreenSpaceOverlay;
// _canvas.sortingOrder = 100;
//
// var scaler = canvasObj.AddComponent<CanvasScaler>();
// scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
// scaler.referenceResolution = new Vector2(1920, 1080);
// scaler.matchWidthOrHeight = 0.5f;
// canvasObj.AddComponent<GraphicRaycaster>();
//
// BuildGameUI(canvasObj.transform);
// BuildFeedbackUI(canvasObj.transform);
// BuildLoadingUI(canvasObj.transform);
// BuildErrorUI(canvasObj.transform);
// BuildResultsUI(canvasObj.transform);
//
// _gameUI.alpha = 0; _gameUI.gameObject.SetActive(false);
// _loadingUI.alpha = 0; _loadingUI.gameObject.SetActive(false);
// _errorUI.alpha = 0; _errorUI.gameObject.SetActive(false);
// _resultsUI.alpha = 0; _resultsUI.gameObject.SetActive(false);
// _feedbackUI.alpha = 0;
}
/*
private void BuildGameUI(Transform parent)
{
var go = MakePanel(parent, "GameUI", Vector2.zero, Vector2.one);
_gameUI = go.AddComponent<CanvasGroup>();
var topBar = MakeImg(go.transform, "TopBar",
new Vector2(0, 1), new Vector2(1, 1),
SSColorPalette.WithAlpha(SSColorPalette.PrimaryDark, 0.85f));
topBar.rectTransform.pivot = new Vector2(0.5f, 1);
topBar.rectTransform.sizeDelta = new Vector2(0, 80);
// _scoreText = MakeTxt(topBar.transform, "Score", "0",
// new Vector2(30, -15), 36, TMPro.TextAlignmentOptions.TopLeft);
// _scoreText.color = SSColorPalette.Accent;
// _scoreText.fontStyle = TMPro.FontStyles.Bold;
// MakeTxt(topBar.transform, "ScoreLabel", "النقاط",
// new Vector2(30, -50), 16, TMPro.TextAlignmentOptions.TopLeft)
// .color = SSColorPalette.WithAlpha(Color.white, 0.6f);
//
// _streakText = MakeTxt(topBar.transform, "Streak", "",
// new Vector2(200, -15), 24, TMPro.TextAlignmentOptions.TopLeft);
// _streakText.color = SSColorPalette.Warning;
_heartIcons = new Image[5];
for (int i = 0; i < 5; i++)
{
var h = new GameObject($"Heart_{i}");
h.transform.SetParent(topBar.transform, false);
var r = h.AddComponent<RectTransform>();
r.anchorMin = r.anchorMax = new Vector2(1, 0.5f);
r.pivot = new Vector2(1, 0.5f);
r.anchoredPosition = new Vector2(-30 - i * 45, 0);
r.sizeDelta = new Vector2(36, 36);
_heartIcons[i] = h.AddComponent<Image>();
_heartIcons[i].color = SSColorPalette.Danger;
h.SetActive(false);
}
var progBg = MakeImg(go.transform, "ProgressBg",
new Vector2(0, 0), new Vector2(1, 0),
SSColorPalette.WithAlpha(Color.white, 0.1f));
progBg.rectTransform.anchoredPosition = new Vector2(0, 15);
progBg.rectTransform.sizeDelta = new Vector2(-80, 8);
progBg.rectTransform.pivot = new Vector2(0.5f, 0);
var fillObj = new GameObject("ProgressFill");
fillObj.transform.SetParent(progBg.transform, false);
var fr = fillObj.AddComponent<RectTransform>();
fr.anchorMin = Vector2.zero;
fr.anchorMax = new Vector2(0, 1);
fr.pivot = new Vector2(0, 0.5f);
fr.offsetMin = fr.offsetMax = Vector2.zero;
_progressFill = fillObj.AddComponent<Image>();
_progressFill.color = SSColorPalette.Accent;
// _progressText = MakeTxt(go.transform, "ProgressText", "0 / 0",
// new Vector2(0, 35), 16, TMPro.TextAlignmentOptions.Bottom);
_progressText.rectTransform.anchorMin = _progressText.rectTransform.anchorMax =
new Vector2(0.5f, 0);
_progressText.color = SSColorPalette.WithAlpha(Color.white, 0.5f);
}
private void BuildFeedbackUI(Transform parent)
{
var go = MakePanel(parent, "FeedbackUI", Vector2.zero, Vector2.one);
_feedbackUI = go.AddComponent<CanvasGroup>();
_feedbackUI.blocksRaycasts = false;
_feedbackUI.interactable = false;
var bgObj = new GameObject("FeedbackBg");
bgObj.transform.SetParent(go.transform, false);
var bgRect = bgObj.AddComponent<RectTransform>();
bgRect.anchorMin = new Vector2(0.2f, 0.4f);
bgRect.anchorMax = new Vector2(0.8f, 0.6f);
bgRect.offsetMin = bgRect.offsetMax = Vector2.zero;
_feedbackBg = bgObj.AddComponent<Image>();
_feedbackBg.color = SSColorPalette.WithAlpha(SSColorPalette.Success, 0.9f);
// _feedbackText = MakeTxt(bgObj.transform, "FeedbackText", "",
// Vector2.zero, 36, TMPro.TextAlignmentOptions.Center);
// _feedbackText.rectTransform.anchorMin = Vector2.zero;
// _feedbackText.rectTransform.anchorMax = Vector2.one;
// _feedbackText.rectTransform.sizeDelta = Vector2.zero;
// _feedbackText.color = Color.white;
}
private void BuildLoadingUI(Transform parent)
private void Start()
{
// ✅ NEW: build points images list from container children
// same as CsUIManager.Start()
if (_pointsContainer != null)
{
_pointImages.Clear();
foreach (Transform child in _pointsContainer)
{
var go = MakePanel(parent, "LoadingUI", Vector2.zero, Vector2.one);
_loadingUI = go.AddComponent<CanvasGroup>();
go.AddComponent<Image>().color =
SSColorPalette.WithAlpha(SSColorPalette.PrimaryDark, 0.9f);
// _loadingText = MakeTxt(go.transform, "LoadingText", "جاري التحميل...",
// Vector2.zero, 28, TMPro.TextAlignmentOptions.Center);
// _loadingText.rectTransform.anchorMin = new Vector2(0.2f, 0.4f);
// _loadingText.rectTransform.anchorMax = new Vector2(0.8f, 0.6f);
// _loadingText.rectTransform.sizeDelta = Vector2.zero;
// _loadingText.color = Color.white;
var img = child.GetComponent<Image>();
if (img != null) _pointImages.Add(img);
}
}
}
private void BuildErrorUI(Transform parent)
{
var go = MakePanel(parent, "ErrorUI", Vector2.zero, Vector2.one);
_errorUI = go.AddComponent<CanvasGroup>();
go.AddComponent<Image>().color =
SSColorPalette.WithAlpha(SSColorPalette.Danger, 0.92f);
_errorText = MakeTxt(go.transform, "ErrorText", "خطأ",
Vector2.zero, 24, TMPro.TextAlignmentOptions.Center);
_errorText.rectTransform.anchorMin = new Vector2(0.15f, 0.35f);
_errorText.rectTransform.anchorMax = new Vector2(0.85f, 0.65f);
_errorText.rectTransform.sizeDelta = Vector2.zero;
_errorText.color = Color.white;
_errorText.enableWordWrapping = true;
}
private void BuildResultsUI(Transform parent)
{
var go = MakePanel(parent, "ResultsUI", Vector2.zero, Vector2.one);
_resultsUI = go.AddComponent<CanvasGroup>();
go.AddComponent<Image>().color =
SSColorPalette.WithAlpha(SSColorPalette.PrimaryDark, 0.95f);
_resultTitle = MakeAnchoredTxt(go.transform, "Title", "أحسنت! 🎉",
new Vector2(0, 200), 48);
_resultTitle.color = SSColorPalette.Accent;
_resultTitle.fontStyle = TMPro.FontStyles.Bold;
_resultScore = MakeAnchoredTxt(go.transform, "Score", "0",
new Vector2(0, 120), 64);
_resultScore.color = Color.white;
_resultScore.fontStyle = TMPro.FontStyles.Bold;
_resultCorrect = MakeAnchoredTxt(go.transform, "Correct", "",
new Vector2(-200, 0), 24);
_resultCorrect.color = SSColorPalette.Success;
_resultWrong = MakeAnchoredTxt(go.transform, "Wrong", "",
new Vector2(0, 0), 24);
_resultWrong.color = SSColorPalette.Danger;
_resultStreak = MakeAnchoredTxt(go.transform, "Streak", "",
new Vector2(200, 0), 24);
_resultStreak.color = SSColorPalette.Accent;
var btnObj = new GameObject("RestartBtn");
btnObj.transform.SetParent(go.transform, false);
var br = btnObj.AddComponent<RectTransform>();
br.anchorMin = br.anchorMax = new Vector2(0.5f, 0.5f);
br.anchoredPosition = new Vector2(0, -120);
br.sizeDelta = new Vector2(300, 60);
btnObj.AddComponent<Image>().color = SSColorPalette.Accent;
_resultRestartBtn = btnObj.AddComponent<Button>();
_resultRestartBtn.onClick.AddListener(() =>
{ HideResults(); onRestartClicked?.Invoke(); });
var btnTxt = MakeTxt(btnObj.transform, "BtnText", "إعادة اللعب 🔄",
Vector2.zero, 24, TMPro.TextAlignmentOptions.Center);
btnTxt.rectTransform.anchorMin = Vector2.zero;
btnTxt.rectTransform.anchorMax = Vector2.one;
btnTxt.rectTransform.sizeDelta = Vector2.zero;
btnTxt.color = SSColorPalette.TextDark;
btnTxt.fontStyle = TMPro.FontStyles.Bold;
}
*/
public void BuildUI() { }
// ─── Game UI ──────────────────────────────────────────────────────────
public void ShowGameUI()
{
......@@ -291,7 +119,7 @@ namespace com.al_arcade.mcq
public void SetStreak(int streak)
{
if (_streakText == null) return;
_streakText.Text = streak > 1 ? $"🔥 ×{streak}" : "";
_streakText.Text = streak > 1 ? $"×{streak}" : "";
if (streak > 1)
{
DOTween.Kill(_streakText.transform, "streakPop");
......@@ -301,26 +129,7 @@ namespace com.al_arcade.mcq
}
}
public void SetLives(int lives, int maxLives)
{
for (int i = 0; i < _heartIcons.Length; i++)
{
bool active = i < maxLives;
_heartIcons[i].gameObject.SetActive(active);
if (active)
{
bool alive = i < lives;
_heartIcons[i].color = alive
? SSColorPalette.Danger
: SSColorPalette.WithAlpha(SSColorPalette.Danger, 0.2f);
if (!alive && i == lives)
{
DOTween.Kill(_heartIcons[i].transform);
_heartIcons[i].transform.DOPunchScale(Vector3.one * 0.5f, 0.3f);
}
}
}
}
// ❌ REMOVED: SetLives() — no longer needed
public void SetProgress(int current, int total)
{
......@@ -335,19 +144,18 @@ namespace com.al_arcade.mcq
if (_progressSlider != null)
{
DOTween.Kill("progSlider");
DOVirtual.Float(_progressSlider.value, (float)current, 0.5f, score =>
DOVirtual.Float(_progressSlider.value, (float)current, 0.5f, val =>
{
_progressSlider.value = score;
_progressSlider.value = val;
}).SetEase(Ease.OutQuad).SetId("progSlider");
}
}
public void ShowFeedback(string message, bool isCorrect)
{
if (!isCorrect)
{
if (!isCorrect && redImage != null)
redImage.DOFade(.7f, .2f).SetLoops(4, LoopType.Yoyo);
}
if (_feedbackText != null) _feedbackText.Text = message;
if (_feedbackBg != null)
_feedbackBg.color = SSColorPalette.WithAlpha(
......@@ -358,7 +166,6 @@ namespace com.al_arcade.mcq
var bgRect = _feedbackBg?.rectTransform;
if (bgRect != null)
{
print("Showing Feedback");
bgRect.localScale = new Vector3(0.5f, 0f, 1f);
var seq = DOTween.Sequence();
seq.Append(_feedbackUI.DOFade(1f, 0.15f));
......@@ -369,6 +176,83 @@ namespace com.al_arcade.mcq
}
}
// ─── Timer UI ─────────────────────────────────────────────────────────
// ✅ NEW: called every frame from OnTimerTick
public void SetTimer(float time)
{
if (_isTweening) return;
if (_timerSlider != null)
_timerSlider.value = time / McqPrefabBuilder.Instance.startTime;
if (_timerFill != null)
_timerFill.color = time > 4f ? _timerDefaultColor : SSColorPalette.Danger;
if (_timerText != null)
_timerText.Text = Mathf.CeilToInt(time).ToString();
}
// ✅ NEW: called on bonus/penalty — flashes and animates the slider
public void UpdateTimer(float time, bool positive)
{
_isTweening = true;
var flashColor = positive ? SSColorPalette.CorrectWord : SSColorPalette.Danger;
if (_timerSlider != null)
_timerSlider.transform.DOPunchScale(Vector3.one * 0.1f, 0.3f, 8, 0.3f);
if (_timerFill != null)
{
_timerFill.DOColor(flashColor, 0.2f).SetEase(Ease.OutQuad)
.OnComplete(() =>
_timerFill.DOColor(_timerDefaultColor, 0.2f).SetEase(Ease.OutQuad));
}
float targetTime = positive ? time : time - 0.3f;
if (_timerSlider != null)
{
_timerSlider.DOValue(targetTime / McqPrefabBuilder.Instance.startTime, 0.3f)
.SetEase(Ease.OutQuad)
.OnComplete(() => _isTweening = false);
}
else
{
_isTweening = false;
}
}
// ─── Points dots UI ───────────────────────────────────────────────────
// ✅ NEW: CS-style dots that fill up as player gets correct answers
// count = current _deltaChangeInSize value from game manager
public void TickPoints(int count)
{
for (int i = 0; i < _pointImages.Count; i++)
{
var img = _pointImages[i];
if (i < count)
{
// dot is active — color it and punch scale it
img.color = _activePointColor;
img.transform.DOPunchScale(
Vector3.one * 0.4f, 0.4f)
.SetEase(Ease.OutElastic)
.SetDelay(0.1f * i);
}
else
{
// dot is inactive — dim it and reset scale
img.color = SSColorPalette.WithAlpha(_inactivePointColor, 0.3f);
img.transform.localScale = Vector3.one;
}
}
}
// ─── Loading / Error ──────────────────────────────────────────────────
public void ShowLoading(string msg)
{
_loadingUI.gameObject.SetActive(true);
......@@ -389,6 +273,8 @@ namespace com.al_arcade.mcq
_errorUI.DOFade(1f, 0.3f);
}
// ─── Results ──────────────────────────────────────────────────────────
public void ShowResults(int score, int correct, int wrong,
int bestStreak, int total, bool won)
{
......@@ -425,6 +311,14 @@ namespace com.al_arcade.mcq
{
_resultScore.transform.localScale = Vector3.zero;
seq.Append(_resultScore.transform.DOScale(1f, 0.4f).SetEase(Ease.OutBack));
// ✅ NEW: animate score counting up like CS
int ds = 0;
DOTween.To(() => ds, x =>
{
ds = x;
if (_resultScore != null) _resultScore.Text = x.ToString("N0");
}, score, 1.2f).SetEase(Ease.OutQuad).SetDelay(0.8f);
}
}
......@@ -434,6 +328,30 @@ namespace com.al_arcade.mcq
.OnComplete(() => _resultsUI.gameObject.SetActive(false));
}
// ─── Reset ────────────────────────────────────────────────────────────
public void ResetUI()
{
if (_gameUI != null) { _gameUI.alpha = 0; _gameUI.gameObject.SetActive(false); }
if (_loadingUI != null) { _loadingUI.alpha = 0; _loadingUI.gameObject.SetActive(false); }
if (_errorUI != null) { _errorUI.alpha = 0; _errorUI.gameObject.SetActive(false); }
if (_resultsUI != null) { _resultsUI.alpha = 0; _resultsUI.gameObject.SetActive(false); }
if (_feedbackUI != null) _feedbackUI.alpha = 0;
// ✅ NEW: reset timer bar
if (_timerSlider != null) _timerSlider.value = 1f;
if (_timerFill != null) _timerFill.color = _timerDefaultColor;
if (_timerText != null) _timerText.Text = "";
// ✅ NEW: reset points dots to all inactive
TickPoints(0);
_isTweening = false;
SetStreak(0);
}
// ─── Button functions ─────────────────────────────────────────────────
public void RestartButtonFunction()
{
HideResults();
......@@ -446,60 +364,5 @@ namespace com.al_arcade.mcq
{
SceneManager.LoadScene("MainMenu");
}
public void ResetUI()
{
_gameUI.gameObject.SetActive(false);
_loadingUI.gameObject.SetActive(false);
_errorUI.gameObject.SetActive(false);
_resultsUI.gameObject.SetActive(false);
_feedbackUI.alpha = 0;
}
/*
private GameObject MakePanel(Transform p, string n, Vector2 amin, Vector2 amax)
{
var go = new GameObject(n);
go.transform.SetParent(p, false);
var r = go.AddComponent<RectTransform>();
r.anchorMin = amin; r.anchorMax = amax;
r.sizeDelta = Vector2.zero; r.anchoredPosition = Vector2.zero;
return go;
}
private Image MakeImg(Transform p, string n, Vector2 amin, Vector2 amax, Color c)
{
var go = new GameObject(n);
go.transform.SetParent(p, false);
var r = go.AddComponent<RectTransform>();
r.anchorMin = amin; r.anchorMax = amax; r.sizeDelta = Vector2.zero;
var img = go.AddComponent<Image>();
img.color = c;
return img;
}
private UniText MakeTxt(Transform p, string n, string text,
Vector2 pos, float size, TMPro.TextAlignmentOptions align)
{
var go = new GameObject(n);
go.transform.SetParent(p, false);
var r = go.AddComponent<RectTransform>();
r.anchoredPosition = pos; r.sizeDelta = new Vector2(400, 60);
var tmp = go.AddComponent<UniText>();
tmp.Text = text; tmp.fontSize = size; tmp.alignment = align;
tmp.enableWordWrapping = true;
SSFontManager.Apply(tmp);
return tmp;
}
private UniText MakeAnchoredTxt(Transform p, string n, string text,
Vector2 pos, float size)
{
var t = MakeTxt(p, n, text, pos, size, TMPro.TextAlignmentOptions.Center);
t.rectTransform.anchorMin = t.rectTransform.anchorMax = new Vector2(0.5f, 0.5f);
return t;
}
*/
}
}
}
\ No newline at end of file
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 10
m_Fog: 1
m_FogColor: {r: 0.4, g: 0.4, b: 0.4, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 13
m_BakeOnSceneLoad: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 2
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 1
m_PVRFilteringGaussRadiusAO: 1
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &603037695
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 603037698}
- component: {fileID: 603037697}
- component: {fileID: 603037696}
- component: {fileID: 603037699}
- component: {fileID: 603037700}
- component: {fileID: 603037701}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &603037696
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 603037695}
m_Enabled: 1
--- !u!20 &603037697
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 603037695}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0.8301887, g: 0.8301887, b: 0.8301887, a: 1}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 80
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &603037698
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 603037695}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2052974454}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &603037699
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 603037695}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalCameraData
m_RenderShadows: 1
m_RequiresDepthTextureOption: 2
m_RequiresOpaqueTextureOption: 2
m_CameraType: 0
m_Cameras: []
m_RendererIndex: -1
m_VolumeLayerMask:
serializedVersion: 2
m_Bits: 1
m_VolumeTrigger: {fileID: 0}
m_VolumeFrameworkUpdateModeOption: 2
m_RenderPostProcessing: 1
m_Antialiasing: 3
m_AntialiasingQuality: 2
m_StopNaN: 0
m_Dithering: 0
m_ClearDepth: 1
m_AllowXRRendering: 1
m_AllowHDROutput: 1
m_UseScreenCoordOverride: 0
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_TaaSettings:
m_Quality: 3
m_FrameInfluence: 0.1
m_JitterScale: 1
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
m_Version: 2
--- !u!82 &603037700
AudioSource:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 603037695}
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0}
m_audioClip: {fileID: 0}
m_Resource: {fileID: 8300000, guid: 3ce0c410f90285845aefa37fa2215631, type: 3}
m_PlayOnAwake: 1
m_Volume: 0.4
m_Pitch: 1
Loop: 1
Mute: 0
Spatialize: 0
SpatializePostEffects: 0
Priority: 128
DopplerLevel: 1
MinDistance: 1
MaxDistance: 500
Pan2D: 0
rolloffMode: 0
BypassEffects: 0
BypassListenerEffects: 0
BypassReverbZones: 0
rolloffCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
panLevelCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
spreadCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
reverbZoneMixCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
--- !u!114 &603037701
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 603037695}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8b9a305e18de0c04dbd257a21cd47087, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Postprocessing.Runtime::UnityEngine.Rendering.PostProcessing.PostProcessVolume
sharedProfile: {fileID: 11400000, guid: a4239714a6b581b458c0b49a303c6116, type: 2}
isGlobal: 1
blendDistance: 0
weight: 1
priority: 0
--- !u!1 &1015746445
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1015746448}
- component: {fileID: 1015746447}
- component: {fileID: 1015746446}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1015746446
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1015746445}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule
m_SendPointerHoverToParent: 1
m_MoveRepeatDelay: 0.5
m_MoveRepeatRate: 0.1
m_XRTrackingOrigin: {fileID: 0}
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_DeselectOnBackgroundClick: 1
m_PointerBehavior: 0
m_CursorLockBehavior: 0
m_ScrollDeltaPerTick: 6
--- !u!114 &1015746447
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1015746445}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.EventSystem
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!4 &1015746448
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1015746445}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: -1.6, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1878716305
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1878716307}
- component: {fileID: 1878716306}
- component: {fileID: 1878716308}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &1878716306
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1878716305}
m_Enabled: 1
serializedVersion: 12
m_Type: 1
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize2D: {x: 0.5, y: 0.5}
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_CullingMatrixOverride:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingLayerMask: 1
m_Lightmapping: 4
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ForceVisible: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
m_LightUnit: 1
m_LuxAtDistance: 1
m_EnableSpotReflector: 1
--- !u!4 &1878716307
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1878716305}
serializedVersion: 2
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!114 &1878716308
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1878716305}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData
m_UsePipelineSettings: 1
m_AdditionalLightsShadowResolutionTier: 2
m_CustomShadowLayers: 0
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 0
m_RenderingLayersMask:
serializedVersion: 0
m_Bits: 1
m_ShadowRenderingLayersMask:
serializedVersion: 0
m_Bits: 1
m_Version: 4
m_LightLayerMask: 1
m_ShadowLayerMask: 1
m_RenderingLayers: 1
m_ShadowRenderingLayers: 1
--- !u!1 &2024194356
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2024194357}
- component: {fileID: 2024194358}
m_Layer: 0
m_Name: McqPrefabBuilder
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2024194357
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2024194356}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 3.99733, y: 0, z: 0.65379}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2024194358
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2024194356}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9f0189b5f38d46349ea6346967d8f9d9, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::com.al_arcade.mcq.McqPrefabBuilder
environmentPrefab: {fileID: 9033396233428977232, guid: 1964cabfcd36cd34e93258702a1d4c9b, type: 3}
cameraOffset: {x: 0, y: 5, z: -8}
cameraLookOffset: {x: 0, y: 1.5, z: 12}
cameraSmoothSpeed: 6
cameraBgColor: {r: 0.9764706, g: 0.98039216, b: 0.9882353, a: 1}
directionalLightPrefab: {fileID: 0}
extraLightPrefabs: []
ambientColor: {r: 0.9764706, g: 0.98039216, b: 0.9882353, a: 1}
playerPrefab: {fileID: 2052400494605065496, guid: e708d5c6f81d6194a98915060d1ea703, type: 3}
playerSpawnPosition: {x: 0, y: 0, z: 0}
competitorPrefab: {fileID: 1751382728646269656, guid: d9891b839842aaa47b82de83a501bb13, type: 3}
gatePrefab: {fileID: 3359827651679123104, guid: 42117f56d26465849a8d9625da3bb1ca, type: 3}
questionDisplayPrefab: {fileID: 5658176873693731764, guid: 68bdbb203201e184ab4984036d94d106, type: 3}
questionDisplayOffset: {x: 0, y: 8, z: 12}
canvasPrefab: {fileID: 3914670067425107175, guid: 3521ed1202c86f54caa37c5ff471b073, type: 3}
sfxCorrect: {fileID: 0}
sfxWrong: {fileID: 0}
sfxClick: {fileID: 0}
sfxVictory: {fileID: 0}
sfxDefeat: {fileID: 0}
sfxWhoosh: {fileID: 0}
sfxPop: {fileID: 0}
sfxCheer: {fileID: 0}
sfxCountdown: {fileID: 0}
correctBurstParticle: {fileID: 0}
wrongBurstParticle: {fileID: 0}
confettiParticle: {fileID: 8193503977349690185, guid: fae695be220a38541b692ad19239ef9f, type: 3}
sparksParticle: {fileID: 0}
starBurstParticle: {fileID: 0}
arabicFont: {fileID: 11400000, guid: 8b4edeefed0fc9f60b1084045988b4cb, type: 2}
buildType: scistreet
gradeId: 0
questionCount: 10
classCode:
runSpeed: 8
lives: 5
startTime: 30
correctAnswerBonusTime: 3
wrongAnswerPenaltyTime: 2
useOfflineTestData: 0
--- !u!1001 &2052974453
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 603037698}
m_Modifications:
- target: {fileID: 6955428004947038011, guid: 34182cd83d7c1f44ebd466464e1a4db5, type: 3}
propertyPath: m_LocalPosition.x
value: -0.08737
objectReference: {fileID: 0}
- target: {fileID: 6955428004947038011, guid: 34182cd83d7c1f44ebd466464e1a4db5, type: 3}
propertyPath: m_LocalPosition.y
value: 10.40678
objectReference: {fileID: 0}
- target: {fileID: 6955428004947038011, guid: 34182cd83d7c1f44ebd466464e1a4db5, type: 3}
propertyPath: m_LocalPosition.z
value: 10
objectReference: {fileID: 0}
- target: {fileID: 6955428004947038011, guid: 34182cd83d7c1f44ebd466464e1a4db5, type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 6955428004947038011, guid: 34182cd83d7c1f44ebd466464e1a4db5, type: 3}
propertyPath: m_LocalRotation.x
value: -0.7071068
objectReference: {fileID: 0}
- target: {fileID: 6955428004947038011, guid: 34182cd83d7c1f44ebd466464e1a4db5, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6955428004947038011, guid: 34182cd83d7c1f44ebd466464e1a4db5, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6955428004947038011, guid: 34182cd83d7c1f44ebd466464e1a4db5, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: -90
objectReference: {fileID: 0}
- target: {fileID: 6955428004947038011, guid: 34182cd83d7c1f44ebd466464e1a4db5, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6955428004947038011, guid: 34182cd83d7c1f44ebd466464e1a4db5, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8015466945648444578, guid: 34182cd83d7c1f44ebd466464e1a4db5, type: 3}
propertyPath: m_Name
value: DotFloating
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 34182cd83d7c1f44ebd466464e1a4db5, type: 3}
--- !u!4 &2052974454 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 6955428004947038011, guid: 34182cd83d7c1f44ebd466464e1a4db5, type: 3}
m_PrefabInstance: {fileID: 2052974453}
m_PrefabAsset: {fileID: 0}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 603037698}
- {fileID: 1878716307}
- {fileID: 2024194357}
- {fileID: 1015746448}
fileFormatVersion: 2
guid: c180291be00c6ac4091f2e5f8b379018
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
......@@ -66,14 +66,14 @@
"url": "https://packages.unity.com"
},
"com.unity.collections": {
"version": "2.6.5",
"version": "2.6.2",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.burst": "1.8.27",
"com.unity.burst": "1.8.23",
"com.unity.mathematics": "1.3.2",
"com.unity.test-framework": "1.4.6",
"com.unity.nuget.mono-cecil": "1.11.6",
"com.unity.nuget.mono-cecil": "1.11.5",
"com.unity.test-framework.performance": "3.0.3"
},
"url": "https://packages.unity.com"
......@@ -217,7 +217,7 @@
}
},
"com.unity.splines": {
"version": "2.8.4",
"version": "2.8.2",
"depth": 1,
"source": "registry",
"dependencies": {
......
m_EditorVersion: 6000.3.12f1
m_EditorVersionWithRevision: 6000.3.12f1 (fca03ac9b0d5)
m_EditorVersion: 6000.3.9f1
m_EditorVersionWithRevision: 6000.3.9f1 (7a9955a4f2fa)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment