Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
SSBookMinigames
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
SSBookMinigames
Commits
4b75dcda
Commit
4b75dcda
authored
Apr 11, 2026
by
saad
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add new win and lose sys in msq game
parent
d4ba32ba
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1579 additions
and
413 deletions
+1579
-413
Setup_Scene_Built-in.unitypackage.meta
... Machine Pack Demo/Setup_Scene_Built-in.unitypackage.meta
+7
-0
Setup_Scene_URP.unitypackage.meta
...ctory Machine Pack Demo/Setup_Scene_URP.unitypackage.meta
+7
-0
ItemIcons_(x2).unitypackage.meta
...nent/Icon_ItemIcons_(x2)/ItemIcons_(x2).unitypackage.meta
+7
-0
PictoIcons_(x2).unitypackage.meta
...nt/Icon_PictoIcons_(x2)/PictoIcons_(x2).unitypackage.meta
+7
-0
Cartoon FX FREE (old legacy effects).unitypackage.meta
...ts/Cartoon FX FREE (old legacy effects).unitypackage.meta
+7
-0
URP_ExtractMe.unitypackage.meta
...t/Assets/PolygonSciFiCity/URP_ExtractMe.unitypackage.meta
+7
-0
Canvas.prefab
My project/Assets/Prefabs/CS/Canvas.prefab
+20
-20
Canvas.prefab
My project/Assets/Prefabs/MCQ/Canvas.prefab
+213
-9
MCQ_Canvas.prefab
My project/Assets/Prefabs/MCQ/MCQ_Canvas.prefab
+229
-28
CsGameManager.cs
My project/Assets/ScienceStreet/CS/Scripts/CsGameManager.cs
+0
-2
CsPrefabBuilder.cs
...roject/Assets/ScienceStreet/CS/Scripts/CsPrefabBuilder.cs
+0
-1
McqCompetitor.cs
My project/Assets/ScienceStreet/MCQ/Scripts/McqCompetitor.cs
+1
-0
McqGameManager.cs
...roject/Assets/ScienceStreet/MCQ/Scripts/McqGameManager.cs
+153
-46
McqPlayerRunner.cs
...oject/Assets/ScienceStreet/MCQ/Scripts/McqPlayerRunner.cs
+1
-0
McqPrefabBuilder.cs
...ject/Assets/ScienceStreet/MCQ/Scripts/McqPrefabBuilder.cs
+8
-0
McqUIManager.cs
My project/Assets/ScienceStreet/MCQ/Scripts/McqUIManager.cs
+164
-301
0.unity
My project/Assets/_Recovery/0.unity
+735
-0
0.unity.meta
My project/Assets/_Recovery/0.unity.meta
+7
-0
packages-lock.json
My project/Packages/packages-lock.json
+4
-4
ProjectVersion.txt
My project/ProjectSettings/ProjectVersion.txt
+2
-2
No files found.
My project/Assets/EKstudio/LowPoly Factory Machine Pack Demo/Setup_Scene_Built-in.unitypackage.meta
0 → 100644
View file @
4b75dcda
fileFormatVersion: 2
guid: 745e9c17df962b24a80a69d5da8e5d38
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/EKstudio/LowPoly Factory Machine Pack Demo/Setup_Scene_URP.unitypackage.meta
0 → 100644
View file @
4b75dcda
fileFormatVersion: 2
guid: d308d9efe86ef6242a75802e1f37de49
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/GUI PRO Kit - Simple Casual/Sprite/Component/Icon_ItemIcons_(x2)/ItemIcons_(x2).unitypackage.meta
0 → 100644
View file @
4b75dcda
fileFormatVersion: 2
guid: e5036f96e3c15ea49b96f7ee989dd3c1
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/GUI PRO Kit - Simple Casual/Sprite/Component/Icon_PictoIcons_(x2)/PictoIcons_(x2).unitypackage.meta
0 → 100644
View file @
4b75dcda
fileFormatVersion: 2
guid: 9e9f7f46a1ba34c338eb95b193ae1327
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/JMO Assets/Cartoon FX FREE (old legacy effects).unitypackage.meta
0 → 100644
View file @
4b75dcda
fileFormatVersion: 2
guid: b18b93d4b5d00384ba417df18aeac5a3
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/PolygonSciFiCity/URP_ExtractMe.unitypackage.meta
0 → 100644
View file @
4b75dcda
fileFormatVersion: 2
guid: 92a80e6f6cd90464b8f87b98fc72999a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/Prefabs/CS/Canvas.prefab
View file @
4b75dcda
...
@@ -1526,10 +1526,10 @@ RectTransform:
...
@@ -1526,10 +1526,10 @@ RectTransform:
m_Children
:
[]
m_Children
:
[]
m_Father
:
{
fileID
:
1868296225662172060
}
m_Father
:
{
fileID
:
1868296225662172060
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0
,
y
:
1
}
m_AnchorMin
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
22.572838
,
y
:
-25.96685
}
m_AnchoredPosition
:
{
x
:
22.572838
,
y
:
0
}
m_SizeDelta
:
{
x
:
0
,
y
:
51.9337
}
m_SizeDelta
:
{
x
:
51.9337
,
y
:
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&5599785267463442964
---
!u!222
&5599785267463442964
CanvasRenderer
:
CanvasRenderer
:
...
@@ -1874,10 +1874,10 @@ RectTransform:
...
@@ -1874,10 +1874,10 @@ RectTransform:
m_Children
:
[]
m_Children
:
[]
m_Father
:
{
fileID
:
1868296225662172060
}
m_Father
:
{
fileID
:
1868296225662172060
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0
,
y
:
1
}
m_AnchorMin
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
267.15555
,
y
:
-25.96685
}
m_AnchoredPosition
:
{
x
:
267.15555
,
y
:
0
}
m_SizeDelta
:
{
x
:
0
,
y
:
51.9337
}
m_SizeDelta
:
{
x
:
51.9337
,
y
:
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&5340325998096306428
---
!u!222
&5340325998096306428
CanvasRenderer
:
CanvasRenderer
:
...
@@ -2987,10 +2987,10 @@ RectTransform:
...
@@ -2987,10 +2987,10 @@ RectTransform:
m_Children
:
[]
m_Children
:
[]
m_Father
:
{
fileID
:
1868296225662172060
}
m_Father
:
{
fileID
:
1868296225662172060
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0
,
y
:
1
}
m_AnchorMin
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
206.00986
,
y
:
-25.96685
}
m_AnchoredPosition
:
{
x
:
206.00986
,
y
:
0
}
m_SizeDelta
:
{
x
:
0
,
y
:
51.9337
}
m_SizeDelta
:
{
x
:
51.9337
,
y
:
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&4280031676036218401
---
!u!222
&4280031676036218401
CanvasRenderer
:
CanvasRenderer
:
...
@@ -3385,10 +3385,10 @@ RectTransform:
...
@@ -3385,10 +3385,10 @@ RectTransform:
m_Children
:
[]
m_Children
:
[]
m_Father
:
{
fileID
:
1868296225662172060
}
m_Father
:
{
fileID
:
1868296225662172060
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0
,
y
:
1
}
m_AnchorMin
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
144.8642
,
y
:
-25.96685
}
m_AnchoredPosition
:
{
x
:
144.8642
,
y
:
0
}
m_SizeDelta
:
{
x
:
0
,
y
:
51.9337
}
m_SizeDelta
:
{
x
:
51.9337
,
y
:
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&3352223824432655738
---
!u!222
&3352223824432655738
CanvasRenderer
:
CanvasRenderer
:
...
@@ -3662,10 +3662,10 @@ RectTransform:
...
@@ -3662,10 +3662,10 @@ RectTransform:
m_Children
:
[]
m_Children
:
[]
m_Father
:
{
fileID
:
1868296225662172060
}
m_Father
:
{
fileID
:
1868296225662172060
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0
,
y
:
1
}
m_AnchorMin
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
83.71851
,
y
:
-25.96685
}
m_AnchoredPosition
:
{
x
:
83.71851
,
y
:
0
}
m_SizeDelta
:
{
x
:
0
,
y
:
51.9337
}
m_SizeDelta
:
{
x
:
51.9337
,
y
:
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&2582842219960060486
---
!u!222
&2582842219960060486
CanvasRenderer
:
CanvasRenderer
:
...
...
My project/Assets/Prefabs/MCQ/Canvas.prefab
View file @
4b75dcda
...
@@ -414,7 +414,7 @@ RectTransform:
...
@@ -414,7 +414,7 @@ RectTransform:
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0.5
,
y
:
0
}
m_AnchorMin
:
{
x
:
0.5
,
y
:
0
}
m_AnchorMax
:
{
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_SizeDelta
:
{
x
:
463.4949
,
y
:
81.1116
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&3132024535439582824
---
!u!222
&3132024535439582824
...
@@ -1448,6 +1448,7 @@ RectTransform:
...
@@ -1448,6 +1448,7 @@ RectTransform:
-
{
fileID
:
4961162476651227081
}
-
{
fileID
:
4961162476651227081
}
-
{
fileID
:
8112683366544189877
}
-
{
fileID
:
8112683366544189877
}
-
{
fileID
:
7647726495453634921
}
-
{
fileID
:
7647726495453634921
}
-
{
fileID
:
2536730654660907268
}
-
{
fileID
:
5665338920870028329
}
-
{
fileID
:
5665338920870028329
}
m_Father
:
{
fileID
:
1602679806339155043
}
m_Father
:
{
fileID
:
1602679806339155043
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
...
@@ -1906,12 +1907,12 @@ MonoBehaviour:
...
@@ -1906,12 +1907,12 @@ MonoBehaviour:
_errorText
:
{
fileID
:
6000852385021902395
}
_errorText
:
{
fileID
:
6000852385021902395
}
_feedbackText
:
{
fileID
:
1319640003474925752
}
_feedbackText
:
{
fileID
:
1319640003474925752
}
_feedbackBg
:
{
fileID
:
6385991289808644217
}
_feedbackBg
:
{
fileID
:
6385991289808644217
}
_
heartIcons
:
_
timerSlider
:
{
fileID
:
4131065744857399425
}
-
{
fileID
:
1839185051689575283
}
_timerFill
:
{
fileID
:
2049947497551292156
}
-
{
fileID
:
1463790114891023171
}
_timerText
:
{
fileID
:
6811180268977847738
}
-
{
fileID
:
6906497061828657507
}
_pointsContainer
:
{
fileID
:
5665338920870028329
}
-
{
fileID
:
6324179362285698079
}
_activePointColor
:
{
r
:
0.99607843
,
g
:
0.8431373
,
b
:
0
,
a
:
1
}
-
{
fileID
:
8718153497962865154
}
_inactivePointColor
:
{
r
:
0.99607843
,
g
:
0.8431373
,
b
:
0
,
a
:
0.57254905
}
_resultTitle
:
{
fileID
:
7932104573269687284
}
_resultTitle
:
{
fileID
:
7932104573269687284
}
_resultScore
:
{
fileID
:
8584734869575415088
}
_resultScore
:
{
fileID
:
8584734869575415088
}
_resultCorrect
:
{
fileID
:
2439187917061100090
}
_resultCorrect
:
{
fileID
:
2439187917061100090
}
...
@@ -2391,6 +2392,134 @@ CanvasGroup:
...
@@ -2391,6 +2392,134 @@ CanvasGroup:
m_Interactable
:
1
m_Interactable
:
1
m_BlocksRaycasts
:
1
m_BlocksRaycasts
:
1
m_IgnoreParentGroups
:
0
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
---
!u!1
&5247847653096216629
GameObject
:
GameObject
:
m_ObjectHideFlags
:
0
m_ObjectHideFlags
:
0
...
@@ -2408,7 +2537,7 @@ GameObject:
...
@@ -2408,7 +2537,7 @@ GameObject:
m_Icon
:
{
fileID
:
0
}
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
m_IsActive
:
0
---
!u!224
&8112683366544189877
---
!u!224
&8112683366544189877
RectTransform
:
RectTransform
:
m_ObjectHideFlags
:
0
m_ObjectHideFlags
:
0
...
@@ -3463,6 +3592,81 @@ MonoBehaviour:
...
@@ -3463,6 +3592,81 @@ MonoBehaviour:
m_EditorClassIdentifier
:
UnityEngine.UI::UnityEngine.UI.AspectRatioFitter
m_EditorClassIdentifier
:
UnityEngine.UI::UnityEngine.UI.AspectRatioFitter
m_AspectMode
:
2
m_AspectMode
:
2
m_AspectRatio
:
1
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
---
!u!1
&6318540975440034586
GameObject
:
GameObject
:
m_ObjectHideFlags
:
0
m_ObjectHideFlags
:
0
...
@@ -4145,7 +4349,7 @@ RectTransform:
...
@@ -4145,7 +4349,7 @@ RectTransform:
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0.5
,
y
:
0
}
m_AnchorMin
:
{
x
:
0.5
,
y
:
0
}
m_AnchorMax
:
{
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_SizeDelta
:
{
x
:
463.4949
,
y
:
81.1116
}
m_Pivot
:
{
x
:
0.5
,
y
:
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0
}
---
!u!222
&5137856222187404235
---
!u!222
&5137856222187404235
...
...
My project/Assets/Prefabs/MCQ/MCQ_Canvas.prefab
View file @
4b75dcda
...
@@ -32,10 +32,10 @@ RectTransform:
...
@@ -32,10 +32,10 @@ RectTransform:
m_Children
:
[]
m_Children
:
[]
m_Father
:
{
fileID
:
1707829484576164050
}
m_Father
:
{
fileID
:
1707829484576164050
}
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
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchoredPosition
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
330
,
y
:
-4
0
}
m_SizeDelta
:
{
x
:
60
,
y
:
0
}
m_SizeDelta
:
{
x
:
60
,
y
:
6
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&5957285601766496015
---
!u!222
&5957285601766496015
CanvasRenderer
:
CanvasRenderer
:
...
@@ -516,10 +516,10 @@ RectTransform:
...
@@ -516,10 +516,10 @@ RectTransform:
m_Children
:
[]
m_Children
:
[]
m_Father
:
{
fileID
:
1707829484576164050
}
m_Father
:
{
fileID
:
1707829484576164050
}
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
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchoredPosition
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
105
,
y
:
-4
0
}
m_SizeDelta
:
{
x
:
60
,
y
:
0
}
m_SizeDelta
:
{
x
:
60
,
y
:
6
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&5079290846272519439
---
!u!222
&5079290846272519439
CanvasRenderer
:
CanvasRenderer
:
...
@@ -1111,10 +1111,10 @@ RectTransform:
...
@@ -1111,10 +1111,10 @@ RectTransform:
m_Children
:
[]
m_Children
:
[]
m_Father
:
{
fileID
:
1707829484576164050
}
m_Father
:
{
fileID
:
1707829484576164050
}
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
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchoredPosition
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
30
,
y
:
-4
0
}
m_SizeDelta
:
{
x
:
60
,
y
:
0
}
m_SizeDelta
:
{
x
:
60
,
y
:
6
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&9053638878752298013
---
!u!222
&9053638878752298013
CanvasRenderer
:
CanvasRenderer
:
...
@@ -1374,10 +1374,10 @@ RectTransform:
...
@@ -1374,10 +1374,10 @@ RectTransform:
m_Children
:
[]
m_Children
:
[]
m_Father
:
{
fileID
:
1707829484576164050
}
m_Father
:
{
fileID
:
1707829484576164050
}
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
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchoredPosition
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
255
,
y
:
-4
0
}
m_SizeDelta
:
{
x
:
60
,
y
:
0
}
m_SizeDelta
:
{
x
:
60
,
y
:
6
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&2144178831353867908
---
!u!222
&2144178831353867908
CanvasRenderer
:
CanvasRenderer
:
...
@@ -1469,7 +1469,7 @@ GameObject:
...
@@ -1469,7 +1469,7 @@ GameObject:
m_Icon
:
{
fileID
:
0
}
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
m_IsActive
:
0
---
!u!224
&1707829484576164050
---
!u!224
&1707829484576164050
RectTransform
:
RectTransform
:
m_ObjectHideFlags
:
0
m_ObjectHideFlags
:
0
...
@@ -2024,12 +2024,9 @@ MonoBehaviour:
...
@@ -2024,12 +2024,9 @@ MonoBehaviour:
_errorText
:
{
fileID
:
1888003687393058882
}
_errorText
:
{
fileID
:
1888003687393058882
}
_feedbackText
:
{
fileID
:
2061464498023138172
}
_feedbackText
:
{
fileID
:
2061464498023138172
}
_feedbackBg
:
{
fileID
:
320492187281714621
}
_feedbackBg
:
{
fileID
:
320492187281714621
}
_heartIcons
:
_timerSlider
:
{
fileID
:
4960621012079594590
}
-
{
fileID
:
7257324222088545947
}
_timerFill
:
{
fileID
:
4686784841726526990
}
-
{
fileID
:
3491027743686837815
}
_timerText
:
{
fileID
:
0
}
-
{
fileID
:
5915587905652818566
}
-
{
fileID
:
3569798678676794223
}
-
{
fileID
:
5678064079461600276
}
_resultTitle
:
{
fileID
:
6869985345037938161
}
_resultTitle
:
{
fileID
:
6869985345037938161
}
_resultScore
:
{
fileID
:
8194691762656679691
}
_resultScore
:
{
fileID
:
8194691762656679691
}
_resultCorrect
:
{
fileID
:
1200142097388316580
}
_resultCorrect
:
{
fileID
:
1200142097388316580
}
...
@@ -2076,10 +2073,10 @@ RectTransform:
...
@@ -2076,10 +2073,10 @@ RectTransform:
m_Children
:
[]
m_Children
:
[]
m_Father
:
{
fileID
:
1707829484576164050
}
m_Father
:
{
fileID
:
1707829484576164050
}
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
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchoredPosition
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
180
,
y
:
-4
0
}
m_SizeDelta
:
{
x
:
60
,
y
:
0
}
m_SizeDelta
:
{
x
:
60
,
y
:
6
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&666726255117497837
---
!u!222
&666726255117497837
CanvasRenderer
:
CanvasRenderer
:
...
@@ -2365,7 +2362,7 @@ GameObject:
...
@@ -2365,7 +2362,7 @@ GameObject:
m_Icon
:
{
fileID
:
0
}
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
m_IsActive
:
0
---
!u!224
&7945613461064983669
---
!u!224
&7945613461064983669
RectTransform
:
RectTransform
:
m_ObjectHideFlags
:
0
m_ObjectHideFlags
:
0
...
@@ -2448,6 +2445,134 @@ CanvasGroup:
...
@@ -2448,6 +2445,134 @@ CanvasGroup:
m_Interactable
:
1
m_Interactable
:
1
m_BlocksRaycasts
:
1
m_BlocksRaycasts
:
1
m_IgnoreParentGroups
:
0
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
---
!u!1
&6022528235701236239
GameObject
:
GameObject
:
m_ObjectHideFlags
:
0
m_ObjectHideFlags
:
0
...
@@ -3532,6 +3657,7 @@ RectTransform:
...
@@ -3532,6 +3657,7 @@ RectTransform:
m_Children
:
m_Children
:
-
{
fileID
:
9082665831957618640
}
-
{
fileID
:
9082665831957618640
}
-
{
fileID
:
1707829484576164050
}
-
{
fileID
:
1707829484576164050
}
-
{
fileID
:
6304791329236256248
}
m_Father
:
{
fileID
:
3311281805925192665
}
m_Father
:
{
fileID
:
3311281805925192665
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0
,
y
:
1
}
m_AnchorMin
:
{
x
:
0
,
y
:
1
}
...
@@ -3653,3 +3779,78 @@ MonoBehaviour:
...
@@ -3653,3 +3779,78 @@ MonoBehaviour:
clickColor
:
{
r
:
0.2
,
g
:
0.5
,
b
:
1
,
a
:
0.6
}
clickColor
:
{
r
:
0.2
,
g
:
0.5
,
b
:
1
,
a
:
0.6
}
fadeDuration
:
0.25
fadeDuration
:
0.25
hoverColor
:
{
r
:
0.2
,
g
:
0.5
,
b
:
1
,
a
:
0.1
}
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
My project/Assets/ScienceStreet/CS/Scripts/CsGameManager.cs
View file @
4b75dcda
...
@@ -7,10 +7,8 @@ using UnityEngine.Events;
...
@@ -7,10 +7,8 @@ using UnityEngine.Events;
namespace
com.al_arcade.cs
namespace
com.al_arcade.cs
{
{
using
System.Linq
;
using
shared
;
using
shared
;
using
Unity.Cinemachine
;
using
Unity.Cinemachine
;
using
UnityEngine.SceneManagement
;
public
enum
CsGameState
public
enum
CsGameState
{
{
...
...
My project/Assets/ScienceStreet/CS/Scripts/CsPrefabBuilder.cs
View file @
4b75dcda
...
@@ -198,7 +198,6 @@ namespace com.al_arcade.cs
...
@@ -198,7 +198,6 @@ namespace com.al_arcade.cs
Debug
.
LogError
(
"[CS] Canvas prefab is missing CsUIManager!"
);
Debug
.
LogError
(
"[CS] Canvas prefab is missing CsUIManager!"
);
yield
break
;
yield
break
;
}
}
}
}
else
else
{
{
...
...
My project/Assets/ScienceStreet/MCQ/Scripts/McqCompetitor.cs
View file @
4b75dcda
...
@@ -52,6 +52,7 @@ public class McqCompetitor : MonoBehaviour
...
@@ -52,6 +52,7 @@ public class McqCompetitor : MonoBehaviour
_manager
=
manager
;
_manager
=
manager
;
manager
.
onAnswerGiven
?.
AddListener
(
ChangeZLevel
);
manager
.
onAnswerGiven
?.
AddListener
(
ChangeZLevel
);
manager
.
onGameOver
.
AddListener
(
Stop
);
manager
.
onGameOver
.
AddListener
(
Stop
);
manager
.
onWin
?.
AddListener
(
Stop
);
}
}
private
void
ChangeZLevel
(
bool
correct
)
private
void
ChangeZLevel
(
bool
correct
)
...
...
My project/Assets/ScienceStreet/MCQ/Scripts/McqGameManager.cs
View file @
4b75dcda
...
@@ -26,7 +26,9 @@ namespace com.al_arcade.mcq
...
@@ -26,7 +26,9 @@ namespace com.al_arcade.mcq
[
SerializeField
]
private
float
playerRunSpeed
=
12f
;
[
SerializeField
]
private
float
playerRunSpeed
=
12f
;
[
SerializeField
]
private
float
gateSpacing
=
4f
;
[
SerializeField
]
private
float
gateSpacing
=
4f
;
[
SerializeField
]
private
float
streakBonusThreshold
=
3
;
[
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"
)]
[
Header
(
"References"
)]
public
McqPlayerRunner
player
;
public
McqPlayerRunner
player
;
...
@@ -40,19 +42,23 @@ namespace com.al_arcade.mcq
...
@@ -40,19 +42,23 @@ namespace com.al_arcade.mcq
[
SerializeField
]
private
McqGameState
_state
=
McqGameState
.
Idle
;
[
SerializeField
]
private
McqGameState
_state
=
McqGameState
.
Idle
;
public
McqGameState
State
=>
_state
;
public
McqGameState
State
=>
_state
;
// MCQ-specific state
private
McqQuestion
[]
_questions
;
private
McqQuestion
[]
_questions
;
private
int
_bestStreak
,
_lives
;
private
int
_bestStreak
;
private
List
<
McqGateController
>
_activeGates
=
new
();
private
List
<
McqGateController
>
_activeGates
=
new
();
private
int
_correctGateIndex
=
-
1
;
private
int
_correctGateIndex
=
-
1
;
private
Camera
_mainCamera
;
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"
)]
[
Header
(
"MCQ Events"
)]
public
UnityEvent
<
McqQuestion
>
onQuestionPresented
;
public
UnityEvent
<
McqQuestion
>
onQuestionPresented
;
public
UnityEvent
<
int
,
int
>
onScoreChanged
;
public
UnityEvent
<
int
,
int
>
onScoreChanged
;
public
UnityEvent
<
int
>
onLifeLost
;
public
UnityEvent
<
int
>
onGameComplete
;
public
UnityEvent
<
int
>
onGameComplete
;
public
UnityEvent
onGameOver
=
new
UnityEvent
();
public
UnityEvent
onGameOver
=
new
UnityEvent
();
public
UnityEvent
onWin
=
new
UnityEvent
();
// ─── Singleton ────────────────────────────────────────────────────────
// ─── Singleton ────────────────────────────────────────────────────────
protected
override
void
Awake
()
protected
override
void
Awake
()
...
@@ -60,12 +66,10 @@ namespace com.al_arcade.mcq
...
@@ -60,12 +66,10 @@ namespace com.al_arcade.mcq
if
(
Instance
!=
null
&&
Instance
!=
this
)
{
Destroy
(
gameObject
);
return
;
}
if
(
Instance
!=
null
&&
Instance
!=
this
)
{
Destroy
(
gameObject
);
return
;
}
Instance
=
this
;
Instance
=
this
;
base
.
Awake
();
base
.
Awake
();
_mainCamera
=
Camera
.
main
;
_mainCamera
=
Camera
.
main
;
onAnswerGiven
?.
AddListener
(
CameraFeedback
);
onAnswerGiven
?.
AddListener
(
CameraFeedback
);
}
}
// ─── BaseGameManager implementation ──────────────────────────────────
protected
override
string
GameTypeKey
=>
"mcq"
;
protected
override
string
GameTypeKey
=>
"mcq"
;
protected
override
IEnumerator
FetchQuestions
(
Action
<
string
>
onError
)
protected
override
IEnumerator
FetchQuestions
(
Action
<
string
>
onError
)
...
@@ -106,26 +110,47 @@ namespace com.al_arcade.mcq
...
@@ -106,26 +110,47 @@ namespace com.al_arcade.mcq
{
{
player
?.
SetupManager
(
this
);
player
?.
SetupManager
(
this
);
competitor
?.
SetupManager
(
this
);
competitor
?.
SetupManager
(
this
);
// Robot getting up animation
yield
return
new
WaitForSeconds
(
1.5f
);
yield
return
new
WaitForSeconds
(
1.5f
);
}
}
protected
override
void
OnTimerTick
(
float
timeLeft
)
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
()
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
;
yield
break
;
}
}
// MCQ doesn't use the base timer - disable it
protected
override
void
Update
()
protected
override
void
Update
()
{
{
// Don't call base.Update() - MCQ uses lives, not a timer
if
(
_state
==
McqGameState
.
WaitingForAnswer
)
base
.
Update
();
}
}
// ─── BeginGameplay ───────────────────────────────────────────────────
// ─── BeginGameplay ───────────────────────────────────────────────────
...
@@ -133,14 +158,18 @@ namespace com.al_arcade.mcq
...
@@ -133,14 +158,18 @@ namespace com.al_arcade.mcq
{
{
_currentIndex
=
_score
=
_streak
=
_correctCount
=
_wrongCount
=
0
;
_currentIndex
=
_score
=
_streak
=
_correctCount
=
_wrongCount
=
0
;
_bestStreak
=
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
)
if
(
uiManager
!=
null
)
{
{
uiManager
.
SetLives
(
totalLives
,
totalLives
);
uiManager
.
SetScore
(
0
);
uiManager
.
SetScore
(
0
);
uiManager
.
SetProgress
(
0
,
_questions
.
Length
);
// ✅ NEW: reset the points dots to 0
uiManager
.
TickPoints
(
0
);
uiManager
.
ShowGameUI
();
uiManager
.
ShowGameUI
();
}
}
...
@@ -152,7 +181,6 @@ namespace com.al_arcade.mcq
...
@@ -152,7 +181,6 @@ namespace com.al_arcade.mcq
StartCoroutine
(
GameLoop
());
StartCoroutine
(
GameLoop
());
}
}
// ─── Public API ───────────────────────────────────────────────────────
public
void
StartWithQuestions
(
McqQuestion
[]
questions
)
public
void
StartWithQuestions
(
McqQuestion
[]
questions
)
{
{
_questions
=
questions
;
_questions
=
questions
;
...
@@ -164,12 +192,13 @@ namespace com.al_arcade.mcq
...
@@ -164,12 +192,13 @@ namespace com.al_arcade.mcq
ResetBaseState
();
ResetBaseState
();
_state
=
McqGameState
.
Idle
;
_state
=
McqGameState
.
Idle
;
_bestStreak
=
0
;
_bestStreak
=
0
;
_lives
=
totalLives
;
_isTicking
=
false
;
// ✅ NEW: reset delta on full reset
_deltaChangeInSize
=
0
;
_questions
=
null
;
_questions
=
null
;
foreach
(
var
g
in
_activeGates
)
CleanupGates
();
if
(
g
!=
null
)
{
DOTween
.
Kill
(
g
.
transform
);
Destroy
(
g
.
gameObject
);
}
StopPlayerAndCompetitor
();
_activeGates
.
Clear
();
if
(
player
!=
null
)
player
.
ResetToStart
();
if
(
player
!=
null
)
player
.
ResetToStart
();
if
(
uiManager
!=
null
)
uiManager
.
ResetUI
();
if
(
uiManager
!=
null
)
uiManager
.
ResetUI
();
...
@@ -177,25 +206,31 @@ namespace com.al_arcade.mcq
...
@@ -177,25 +206,31 @@ namespace com.al_arcade.mcq
}
}
// ─── Game Loop ───────────────────────────────────────────────────────
// ─── 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
()
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
]);
yield
return
PresentQuestion
(
_questions
[
_currentIndex
]);
_currentIndex
++;
if
(
uiManager
!=
null
)
uiManager
.
SetProgress
(
_currentIndex
,
_questions
.
Length
);
}
if
(
_lives
<=
0
)
if
(
_state
==
McqGameState
.
GameOver
||
{
_state
==
McqGameState
.
GameComplete
)
yield
break
;
_state
=
McqGameState
.
GameOver
;
yield
return
LoseSequence
();
_currentIndex
++;
}
else
{
_state
=
McqGameState
.
GameComplete
;
yield
return
VictorySequence
();
}
}
}
}
...
@@ -204,11 +239,12 @@ namespace com.al_arcade.mcq
...
@@ -204,11 +239,12 @@ namespace com.al_arcade.mcq
_state
=
McqGameState
.
ShowingQuestion
;
_state
=
McqGameState
.
ShowingQuestion
;
yield
return
null
;
yield
return
null
;
if
(
_state
==
McqGameState
.
GameOver
)
yield
break
;
if
(
questionDisplay
!=
null
)
if
(
questionDisplay
!=
null
)
questionDisplay
.
Show
(
question
.
question_text
,
question
.
source
);
questionDisplay
.
Show
(
question
.
question_text
,
question
.
source
);
onQuestionPresented
?.
Invoke
(
question
);
onQuestionPresented
?.
Invoke
(
question
);
_state
=
McqGameState
.
WaitingForAnswer
;
_state
=
McqGameState
.
WaitingForAnswer
;
SpawnGates
(
question
);
SpawnGates
(
question
);
...
@@ -218,6 +254,7 @@ namespace com.al_arcade.mcq
...
@@ -218,6 +254,7 @@ namespace com.al_arcade.mcq
void
OnGateHit
(
int
idx
)
void
OnGateHit
(
int
idx
)
{
{
if
(
_state
==
McqGameState
.
GameOver
)
return
;
answered
=
true
;
answered
=
true
;
wasCorrect
=
idx
==
_correctGateIndex
;
wasCorrect
=
idx
==
_correctGateIndex
;
}
}
...
@@ -232,6 +269,12 @@ namespace com.al_arcade.mcq
...
@@ -232,6 +269,12 @@ namespace com.al_arcade.mcq
float
timer
=
0
;
float
timer
=
0
;
while
(!
answered
&&
timer
<
timeout
)
while
(!
answered
&&
timer
<
timeout
)
{
{
if
(
_state
==
McqGameState
.
GameOver
)
{
foreach
(
var
gate
in
_activeGates
)
gate
.
onPlayerEnter
-=
OnGateHit
;
yield
break
;
}
timer
+=
Time
.
deltaTime
;
timer
+=
Time
.
deltaTime
;
yield
return
null
;
yield
return
null
;
}
}
...
@@ -239,9 +282,14 @@ namespace com.al_arcade.mcq
...
@@ -239,9 +282,14 @@ namespace com.al_arcade.mcq
foreach
(
var
gate
in
_activeGates
)
foreach
(
var
gate
in
_activeGates
)
gate
.
onPlayerEnter
-=
OnGateHit
;
gate
.
onPlayerEnter
-=
OnGateHit
;
if
(
_state
==
McqGameState
.
GameOver
)
yield
break
;
_state
=
McqGameState
.
AnswerFeedback
;
_state
=
McqGameState
.
AnswerFeedback
;
yield
return
ProcessAnswer
(
answered
&&
wasCorrect
);
yield
return
ProcessAnswer
(
answered
&&
wasCorrect
);
if
(
_state
==
McqGameState
.
GameOver
||
_state
==
McqGameState
.
GameComplete
)
yield
break
;
foreach
(
var
gate
in
_activeGates
)
foreach
(
var
gate
in
_activeGates
)
{
{
if
(
gate
!=
null
)
if
(
gate
!=
null
)
...
@@ -255,12 +303,18 @@ namespace com.al_arcade.mcq
...
@@ -255,12 +303,18 @@ namespace com.al_arcade.mcq
_activeGates
.
Clear
();
_activeGates
.
Clear
();
yield
return
new
WaitForSeconds
(
0.5f
);
yield
return
new
WaitForSeconds
(
0.5f
);
if
(
_state
==
McqGameState
.
GameOver
||
_state
==
McqGameState
.
GameComplete
)
yield
break
;
_state
=
McqGameState
.
BetweenQuestions
;
_state
=
McqGameState
.
BetweenQuestions
;
if
(
questionDisplay
!=
null
)
questionDisplay
.
Hide
();
if
(
questionDisplay
!=
null
)
questionDisplay
.
Hide
();
}
}
private
IEnumerator
ProcessAnswer
(
bool
correct
)
private
IEnumerator
ProcessAnswer
(
bool
correct
)
{
{
if
(
_state
==
McqGameState
.
GameOver
)
yield
break
;
if
(
correct
)
if
(
correct
)
{
{
_correctCount
++;
_correctCount
++;
...
@@ -269,6 +323,10 @@ namespace com.al_arcade.mcq
...
@@ -269,6 +323,10 @@ namespace com.al_arcade.mcq
int
points
=
CalculateStreakScore
((
int
)
streakBonusThreshold
);
int
points
=
CalculateStreakScore
((
int
)
streakBonusThreshold
);
_score
+=
points
;
_score
+=
points
;
// ✅ NEW: move progress bar up like CS
_deltaChangeInSize
++;
AdjustTimer
(
McqPrefabBuilder
.
Instance
.
correctAnswerBonusTime
);
ShowCorrectFeedback
(
points
);
ShowCorrectFeedback
(
points
);
var
audio
=
SSAudioManager
.
Instance
;
var
audio
=
SSAudioManager
.
Instance
;
...
@@ -288,7 +346,11 @@ namespace com.al_arcade.mcq
...
@@ -288,7 +346,11 @@ namespace com.al_arcade.mcq
{
{
_wrongCount
++;
_wrongCount
++;
_streak
=
0
;
_streak
=
0
;
_lives
--;
// ✅ NEW: move progress bar down like CS, clamped to 0
_deltaChangeInSize
=
Mathf
.
Max
(
0
,
_deltaChangeInSize
-
1
);
AdjustTimer
(-
McqPrefabBuilder
.
Instance
.
wrongAnswerPenaltyTime
);
ShowWrongFeedback
();
ShowWrongFeedback
();
var
audio
=
SSAudioManager
.
Instance
;
var
audio
=
SSAudioManager
.
Instance
;
...
@@ -302,16 +364,63 @@ namespace com.al_arcade.mcq
...
@@ -302,16 +364,63 @@ namespace com.al_arcade.mcq
if
(
particles
!=
null
&&
player
!=
null
)
if
(
particles
!=
null
&&
player
!=
null
)
particles
.
PlayWrongBurst
(
player
.
transform
.
position
+
Vector3
.
up
*
2f
);
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
);
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
);
onAnswerGiven
?.
Invoke
(
correct
);
onScoreChanged
?.
Invoke
(
_score
,
_streak
);
onScoreChanged
?.
Invoke
(
_score
,
_streak
);
yield
return
new
WaitForSeconds
(
feedbackDisplayTime
);
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 ───────────────────────────────────────────────────
// ─── Gate Spawning ───────────────────────────────────────────────────
...
@@ -428,13 +537,12 @@ namespace com.al_arcade.mcq
...
@@ -428,13 +537,12 @@ namespace com.al_arcade.mcq
private
void
CameraFeedback
(
bool
correct
)
private
void
CameraFeedback
(
bool
correct
)
{
{
_mainCamera
.
DOFieldOfView
(
correct
?
85f
:
80
f
,
0.2f
).
SetEase
(
Ease
.
OutQuad
);
_mainCamera
.
DOFieldOfView
(
correct
?
78f
:
76
f
,
0.2f
).
SetEase
(
Ease
.
OutQuad
);
}
}
// ─── End Sequences ───────────────────────────────────────────────────
// ─── End Sequences ───────────────────────────────────────────────────
protected
override
IEnumerator
SharedVictorySequence
()
protected
override
IEnumerator
SharedVictorySequence
()
{
{
Debug
.
Log
(
"MCQ victory sequence"
);
var
audio
=
SSAudioManager
.
Instance
;
var
audio
=
SSAudioManager
.
Instance
;
if
(
audio
!=
null
)
if
(
audio
!=
null
)
{
{
...
@@ -459,7 +567,8 @@ namespace com.al_arcade.mcq
...
@@ -459,7 +567,8 @@ namespace com.al_arcade.mcq
protected
override
IEnumerator
SharedLoseSequence
()
protected
override
IEnumerator
SharedLoseSequence
()
{
{
Debug
.
Log
(
"MCQ game over"
);
StopPlayerAndCompetitor
();
var
audio
=
SSAudioManager
.
Instance
;
var
audio
=
SSAudioManager
.
Instance
;
if
(
audio
!=
null
)
if
(
audio
!=
null
)
{
{
...
@@ -479,8 +588,6 @@ namespace com.al_arcade.mcq
...
@@ -479,8 +588,6 @@ namespace com.al_arcade.mcq
onGameOver
?.
Invoke
();
onGameOver
?.
Invoke
();
}
}
// ─── MCQ-specific accessors ──────────────────────────────────────────
public
int
Lives
=>
_lives
;
public
int
BestStreak
=>
_bestStreak
;
public
int
BestStreak
=>
_bestStreak
;
public
int
TotalQuestions
=>
_questions
?.
Length
??
0
;
public
int
TotalQuestions
=>
_questions
?.
Length
??
0
;
}
}
...
...
My project/Assets/ScienceStreet/MCQ/Scripts/McqPlayerRunner.cs
View file @
4b75dcda
...
@@ -60,6 +60,7 @@ namespace com.al_arcade.mcq
...
@@ -60,6 +60,7 @@ namespace com.al_arcade.mcq
_manager
=
manager
;
_manager
=
manager
;
manager
.
onAnswerGiven
?.
AddListener
(
PlayAnimation
);
manager
.
onAnswerGiven
?.
AddListener
(
PlayAnimation
);
manager
.
onGameOver
?.
AddListener
(
Stop
);
manager
.
onGameOver
?.
AddListener
(
Stop
);
manager
.
onWin
?.
AddListener
(
Stop
);
}
}
private
void
PlayAnimation
(
bool
correct
)
private
void
PlayAnimation
(
bool
correct
)
...
...
My project/Assets/ScienceStreet/MCQ/Scripts/McqPrefabBuilder.cs
View file @
4b75dcda
...
@@ -7,12 +7,14 @@ using TMPro;
...
@@ -7,12 +7,14 @@ using TMPro;
namespace
com.al_arcade.mcq
namespace
com.al_arcade.mcq
{
{
using
com.al_arcade.cs
;
using
shared
;
using
shared
;
[
AddComponentMenu
(
"Science Street/MCQ Prefab Builder"
)]
[
AddComponentMenu
(
"Science Street/MCQ Prefab Builder"
)]
public
class
McqPrefabBuilder
:
MonoBehaviour
public
class
McqPrefabBuilder
:
MonoBehaviour
{
{
public
static
McqPrefabBuilder
Instance
{
get
;
private
set
;
}
[
Header
(
"Scene Environment"
)]
[
Header
(
"Scene Environment"
)]
[
Tooltip
(
"Your full road/environment prefab. Spawned at origin."
)]
[
Tooltip
(
"Your full road/environment prefab. Spawned at origin."
)]
...
@@ -90,6 +92,11 @@ namespace com.al_arcade.mcq
...
@@ -90,6 +92,11 @@ namespace com.al_arcade.mcq
[
SerializeField
]
private
float
runSpeed
=
12f
;
[
SerializeField
]
private
float
runSpeed
=
12f
;
[
SerializeField
]
private
int
lives
=
3
;
[
SerializeField
]
private
int
lives
=
3
;
[
Header
(
"Timer Settings"
)]
public
int
startTime
=
30
;
public
int
correctAnswerBonusTime
=
3
;
public
int
wrongAnswerPenaltyTime
=
2
;
[
Header
(
"Debug"
)]
[
Header
(
"Debug"
)]
[
SerializeField
]
private
bool
useOfflineTestData
=
false
;
[
SerializeField
]
private
bool
useOfflineTestData
=
false
;
...
@@ -102,6 +109,7 @@ namespace com.al_arcade.mcq
...
@@ -102,6 +109,7 @@ namespace com.al_arcade.mcq
private
void
Start
()
private
void
Start
()
{
{
Instance
=
this
;
DOTween
.
Init
();
DOTween
.
Init
();
if
(
arabicFont
!=
null
)
SSFontManager
.
Font
=
arabicFont
;
if
(
arabicFont
!=
null
)
SSFontManager
.
Font
=
arabicFont
;
StartCoroutine
(
BuildEverything
());
StartCoroutine
(
BuildEverything
());
...
...
My project/Assets/ScienceStreet/MCQ/Scripts/McqUIManager.cs
View file @
4b75dcda
using
UnityEngine
;
using
UnityEngine
;
using
UnityEngine.UI
;
using
UnityEngine.UI
;
using
UnityEngine.Events
;
using
UnityEngine.Events
;
// using ALArcade.ArabicTMP;
namespace
com.al_arcade.mcq
namespace
com.al_arcade.mcq
{
{
using
DG.Tweening
;
using
DG.Tweening
;
using
LightSide
;
using
LightSide
;
using
shared
;
using
shared
;
using
System.Collections.Generic
;
using
UnityEngine.SceneManagement
;
using
UnityEngine.SceneManagement
;
public
class
McqUIManager
:
MonoBehaviour
public
class
McqUIManager
:
MonoBehaviour
{
{
private
Canvas
_canvas
;
private
Canvas
_canvas
;
[
Header
(
"CanvasGroups"
)]
[
Header
(
"CanvasGroups"
)]
[
SerializeField
]
private
CanvasGroup
_gameUI
;
[
SerializeField
]
private
CanvasGroup
_gameUI
;
[
SerializeField
]
private
CanvasGroup
_loadingUI
;
[
SerializeField
]
private
CanvasGroup
_loadingUI
;
...
@@ -28,7 +29,19 @@ namespace com.al_arcade.mcq
...
@@ -28,7 +29,19 @@ namespace com.al_arcade.mcq
[
SerializeField
]
private
UniText
_errorText
;
[
SerializeField
]
private
UniText
_errorText
;
[
SerializeField
]
private
UniText
_feedbackText
;
[
SerializeField
]
private
UniText
_feedbackText
;
[
SerializeField
]
private
Image
_feedbackBg
;
[
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"
)]
[
Header
(
"Results UI"
)]
[
SerializeField
]
private
UniText
_resultTitle
;
[
SerializeField
]
private
UniText
_resultTitle
;
...
@@ -45,233 +58,48 @@ namespace com.al_arcade.mcq
...
@@ -45,233 +58,48 @@ namespace com.al_arcade.mcq
[
Header
(
"Events"
)]
[
Header
(
"Events"
)]
public
UnityEvent
onRestartClicked
;
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
()
private
void
Awake
()
{
{
if
(
_gameUI
!=
null
)
if
(
_gameUI
!=
null
)
{
_gameUI
.
alpha
=
0
;
_gameUI
.
gameObject
.
SetActive
(
false
);
}
{
if
(
_loadingUI
!=
null
)
{
_loadingUI
.
alpha
=
0
;
_loadingUI
.
gameObject
.
SetActive
(
false
);
}
_gameUI
.
alpha
=
0
;
_gameUI
.
gameObject
.
SetActive
(
false
);
if
(
_errorUI
!=
null
)
{
_errorUI
.
alpha
=
0
;
_errorUI
.
gameObject
.
SetActive
(
false
);
}
}
if
(
_resultsUI
!=
null
)
{
_resultsUI
.
alpha
=
0
;
_resultsUI
.
gameObject
.
SetActive
(
false
);
}
if
(
_loadingUI
!=
null
)
if
(
_feedbackUI
!=
null
)
{
_feedbackUI
.
alpha
=
0
;
_feedbackUI
.
gameObject
.
SetActive
(
true
);
}
{
_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
(
_winIcon
!=
null
)
_winIcon
.
SetActive
(
false
);
if
(
_loseIcon
!=
null
)
_loseIcon
.
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);
var
img
=
child
.
GetComponent
<
Image
>();
_loadingUI = go.AddComponent<CanvasGroup>();
if
(
img
!=
null
)
_pointImages
.
Add
(
img
);
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;
}
}
}
}
private void BuildErrorUI(Transform parent)
public
void
BuildUI
()
{
}
{
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;
}
*/
// ─── Game UI ──────────────────────────────────────────────────────────
public
void
ShowGameUI
()
public
void
ShowGameUI
()
{
{
...
@@ -291,7 +119,7 @@ namespace com.al_arcade.mcq
...
@@ -291,7 +119,7 @@ namespace com.al_arcade.mcq
public
void
SetStreak
(
int
streak
)
public
void
SetStreak
(
int
streak
)
{
{
if
(
_streakText
==
null
)
return
;
if
(
_streakText
==
null
)
return
;
_streakText
.
Text
=
streak
>
1
?
$"
🔥
×
{
streak
}
"
:
""
;
_streakText
.
Text
=
streak
>
1
?
$"×
{
streak
}
"
:
""
;
if
(
streak
>
1
)
if
(
streak
>
1
)
{
{
DOTween
.
Kill
(
_streakText
.
transform
,
"streakPop"
);
DOTween
.
Kill
(
_streakText
.
transform
,
"streakPop"
);
...
@@ -301,26 +129,7 @@ namespace com.al_arcade.mcq
...
@@ -301,26 +129,7 @@ namespace com.al_arcade.mcq
}
}
}
}
public
void
SetLives
(
int
lives
,
int
maxLives
)
// ❌ REMOVED: SetLives() — no longer needed
{
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
);
}
}
}
}
public
void
SetProgress
(
int
current
,
int
total
)
public
void
SetProgress
(
int
current
,
int
total
)
{
{
...
@@ -335,19 +144,18 @@ namespace com.al_arcade.mcq
...
@@ -335,19 +144,18 @@ namespace com.al_arcade.mcq
if
(
_progressSlider
!=
null
)
if
(
_progressSlider
!=
null
)
{
{
DOTween
.
Kill
(
"progSlider"
);
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"
);
}).
SetEase
(
Ease
.
OutQuad
).
SetId
(
"progSlider"
);
}
}
}
}
public
void
ShowFeedback
(
string
message
,
bool
isCorrect
)
public
void
ShowFeedback
(
string
message
,
bool
isCorrect
)
{
{
if
(!
isCorrect
)
if
(!
isCorrect
&&
redImage
!=
null
)
{
redImage
.
DOFade
(.
7f
,
.
2f
).
SetLoops
(
4
,
LoopType
.
Yoyo
);
redImage
.
DOFade
(.
7f
,
.
2f
).
SetLoops
(
4
,
LoopType
.
Yoyo
);
}
if
(
_feedbackText
!=
null
)
_feedbackText
.
Text
=
message
;
if
(
_feedbackText
!=
null
)
_feedbackText
.
Text
=
message
;
if
(
_feedbackBg
!=
null
)
if
(
_feedbackBg
!=
null
)
_feedbackBg
.
color
=
SSColorPalette
.
WithAlpha
(
_feedbackBg
.
color
=
SSColorPalette
.
WithAlpha
(
...
@@ -358,7 +166,6 @@ namespace com.al_arcade.mcq
...
@@ -358,7 +166,6 @@ namespace com.al_arcade.mcq
var
bgRect
=
_feedbackBg
?.
rectTransform
;
var
bgRect
=
_feedbackBg
?.
rectTransform
;
if
(
bgRect
!=
null
)
if
(
bgRect
!=
null
)
{
{
print
(
"Showing Feedback"
);
bgRect
.
localScale
=
new
Vector3
(
0.5f
,
0f
,
1f
);
bgRect
.
localScale
=
new
Vector3
(
0.5f
,
0f
,
1f
);
var
seq
=
DOTween
.
Sequence
();
var
seq
=
DOTween
.
Sequence
();
seq
.
Append
(
_feedbackUI
.
DOFade
(
1f
,
0.15f
));
seq
.
Append
(
_feedbackUI
.
DOFade
(
1f
,
0.15f
));
...
@@ -369,6 +176,83 @@ namespace com.al_arcade.mcq
...
@@ -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
)
public
void
ShowLoading
(
string
msg
)
{
{
_loadingUI
.
gameObject
.
SetActive
(
true
);
_loadingUI
.
gameObject
.
SetActive
(
true
);
...
@@ -389,6 +273,8 @@ namespace com.al_arcade.mcq
...
@@ -389,6 +273,8 @@ namespace com.al_arcade.mcq
_errorUI
.
DOFade
(
1f
,
0.3f
);
_errorUI
.
DOFade
(
1f
,
0.3f
);
}
}
// ─── Results ──────────────────────────────────────────────────────────
public
void
ShowResults
(
int
score
,
int
correct
,
int
wrong
,
public
void
ShowResults
(
int
score
,
int
correct
,
int
wrong
,
int
bestStreak
,
int
total
,
bool
won
)
int
bestStreak
,
int
total
,
bool
won
)
{
{
...
@@ -425,6 +311,14 @@ namespace com.al_arcade.mcq
...
@@ -425,6 +311,14 @@ namespace com.al_arcade.mcq
{
{
_resultScore
.
transform
.
localScale
=
Vector3
.
zero
;
_resultScore
.
transform
.
localScale
=
Vector3
.
zero
;
seq
.
Append
(
_resultScore
.
transform
.
DOScale
(
1f
,
0.4f
).
SetEase
(
Ease
.
OutBack
));
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
...
@@ -434,6 +328,30 @@ namespace com.al_arcade.mcq
.
OnComplete
(()
=>
_resultsUI
.
gameObject
.
SetActive
(
false
));
.
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
()
public
void
RestartButtonFunction
()
{
{
HideResults
();
HideResults
();
...
@@ -446,60 +364,5 @@ namespace com.al_arcade.mcq
...
@@ -446,60 +364,5 @@ namespace com.al_arcade.mcq
{
{
SceneManager
.
LoadScene
(
"MainMenu"
);
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
My project/Assets/_Recovery/0.unity
0 → 100644
View file @
4b75dcda
%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
}
My project/Assets/_Recovery/0.unity.meta
0 → 100644
View file @
4b75dcda
fileFormatVersion: 2
guid: c180291be00c6ac4091f2e5f8b379018
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
My project/Packages/packages-lock.json
View file @
4b75dcda
...
@@ -66,14 +66,14 @@
...
@@ -66,14 +66,14 @@
"url"
:
"https://packages.unity.com"
"url"
:
"https://packages.unity.com"
},
},
"com.unity.collections"
:
{
"com.unity.collections"
:
{
"version"
:
"2.6.
5
"
,
"version"
:
"2.6.
2
"
,
"depth"
:
1
,
"depth"
:
1
,
"source"
:
"registry"
,
"source"
:
"registry"
,
"dependencies"
:
{
"dependencies"
:
{
"com.unity.burst"
:
"1.8.2
7
"
,
"com.unity.burst"
:
"1.8.2
3
"
,
"com.unity.mathematics"
:
"1.3.2"
,
"com.unity.mathematics"
:
"1.3.2"
,
"com.unity.test-framework"
:
"1.4.6"
,
"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"
"com.unity.test-framework.performance"
:
"3.0.3"
},
},
"url"
:
"https://packages.unity.com"
"url"
:
"https://packages.unity.com"
...
@@ -217,7 +217,7 @@
...
@@ -217,7 +217,7 @@
}
}
},
},
"com.unity.splines"
:
{
"com.unity.splines"
:
{
"version"
:
"2.8.
4
"
,
"version"
:
"2.8.
2
"
,
"depth"
:
1
,
"depth"
:
1
,
"source"
:
"registry"
,
"source"
:
"registry"
,
"dependencies"
:
{
"dependencies"
:
{
...
...
My project/ProjectSettings/ProjectVersion.txt
View file @
4b75dcda
m_EditorVersion: 6000.3.
12
f1
m_EditorVersion: 6000.3.
9
f1
m_EditorVersionWithRevision: 6000.3.
12f1 (fca03ac9b0d5
)
m_EditorVersionWithRevision: 6000.3.
9f1 (7a9955a4f2fa
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment