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
5f34f841
Commit
5f34f841
authored
Feb 25, 2026
by
Mahmoud Mostafa
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added the feedback, enemies and removed the pause from the runner
parent
62a53115
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
9715 additions
and
269 deletions
+9715
-269
MCQ_Competitor.prefab
My project/Assets/Prefabs/MCQ/MCQ_Competitor.prefab
+8986
-0
MCQ_Competitor.prefab.meta
My project/Assets/Prefabs/MCQ/MCQ_Competitor.prefab.meta
+7
-0
QuestionDisplay.prefab
My project/Assets/Prefabs/MCQ/QuestionDisplay.prefab
+19
-13
body_diff 1.mat
...ssets/RobotSphere/Assets/Models/Materials/body_diff 1.mat
+142
-0
body_diff 1.mat.meta
.../RobotSphere/Assets/Models/Materials/body_diff 1.mat.meta
+8
-0
MSQ.unity
My project/Assets/Scenes/MCQ/MSQ.unity
+63
-0
McqCompetitor.cs
My project/Assets/ScienceStreet/MCQ/Scripts/McqCompetitor.cs
+63
-0
McqCompetitor.cs.meta
...ct/Assets/ScienceStreet/MCQ/Scripts/McqCompetitor.cs.meta
+2
-0
McqGameManager.cs
...roject/Assets/ScienceStreet/MCQ/Scripts/McqGameManager.cs
+28
-6
McqPrefabBuilder.cs
...ject/Assets/ScienceStreet/MCQ/Scripts/McqPrefabBuilder.cs
+10
-0
McqQuestionDisplay.cs
...ct/Assets/ScienceStreet/MCQ/Scripts/McqQuestionDisplay.cs
+60
-7
default-6000.dwlt
My project/UserSettings/Layouts/default-6000.dwlt
+327
-243
No files found.
My project/Assets/Prefabs/MCQ/MCQ_Competitor.prefab
0 → 100644
View file @
5f34f841
This diff is collapsed.
Click to expand it.
My project/Assets/Prefabs/MCQ/MCQ_Competitor.prefab.meta
0 → 100644
View file @
5f34f841
fileFormatVersion: 2
guid: d9891b839842aaa47b82de83a501bb13
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/Prefabs/MCQ/QuestionDisplay.prefab
View file @
5f34f841
...
...
@@ -18,7 +18,7 @@ GameObject:
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
m_IsActive
:
0
---
!u!4
&8159818238836307498
Transform
:
m_ObjectHideFlags
:
0
...
...
@@ -490,7 +490,7 @@ GameObject:
-
component
:
{
fileID
:
7309656241884795972
}
-
component
:
{
fileID
:
4427433801934824718
}
m_Layer
:
0
m_Name
:
Panel
m_Name
:
Panel
1
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
...
...
@@ -586,7 +586,7 @@ GameObject:
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
m_IsActive
:
0
---
!u!4
&2086452007185196314
Transform
:
m_ObjectHideFlags
:
0
...
...
@@ -1256,7 +1256,7 @@ GameObject:
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
m_IsActive
:
0
---
!u!4
&2188226815103898673
Transform
:
m_ObjectHideFlags
:
0
...
...
@@ -1362,7 +1362,7 @@ GameObject:
-
component
:
{
fileID
:
7349749724705030241
}
-
component
:
{
fileID
:
6514002172880948282
}
m_Layer
:
0
m_Name
:
Panel
m_Name
:
Panel
4
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
...
...
@@ -1493,7 +1493,7 @@ GameObject:
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
m_IsActive
:
0
---
!u!4
&6327679672916394243
Transform
:
m_ObjectHideFlags
:
0
...
...
@@ -1678,11 +1678,17 @@ MonoBehaviour:
forwardOffset
:
5
_questionText
:
{
fileID
:
3292321362202908030
}
_sourceText
:
{
fileID
:
6004065417163962866
}
Answer
Panel
s
:
Answer
Text
s
:
-
{
fileID
:
3655114964514564590
}
-
{
fileID
:
7797954248204838933
}
-
{
fileID
:
3213798201639086454
}
-
{
fileID
:
8641588693722270660
}
PanelRenderers
:
-
{
fileID
:
4427433801934824718
}
-
{
fileID
:
7886255794680787776
}
-
{
fileID
:
1319201922086850458
}
-
{
fileID
:
6514002172880948282
}
_baseColor
:
{
r
:
0
,
g
:
1
,
b
:
0.99607843
,
a
:
0.6
}
---
!u!1
&6016451656855434228
GameObject
:
m_ObjectHideFlags
:
0
...
...
@@ -1885,7 +1891,7 @@ GameObject:
-
component
:
{
fileID
:
4202180332432654217
}
-
component
:
{
fileID
:
1319201922086850458
}
m_Layer
:
0
m_Name
:
Panel
m_Name
:
Panel
3
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
...
...
@@ -2108,7 +2114,7 @@ GameObject:
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
m_IsActive
:
0
---
!u!4
&3498838900731819418
Transform
:
m_ObjectHideFlags
:
0
...
...
@@ -2220,7 +2226,7 @@ GameObject:
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
m_IsActive
:
0
---
!u!4
&4352678685556519927
Transform
:
m_ObjectHideFlags
:
0
...
...
@@ -2332,7 +2338,7 @@ GameObject:
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
m_IsActive
:
0
---
!u!4
&3106290132336646861
Transform
:
m_ObjectHideFlags
:
0
...
...
@@ -2624,7 +2630,7 @@ GameObject:
-
component
:
{
fileID
:
5636481141349987335
}
-
component
:
{
fileID
:
7886255794680787776
}
m_Layer
:
0
m_Name
:
Panel
m_Name
:
Panel
2
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
...
...
@@ -2755,7 +2761,7 @@ GameObject:
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
m_IsActive
:
0
---
!u!4
&4635802763974277353
Transform
:
m_ObjectHideFlags
:
0
...
...
My project/Assets/RobotSphere/Assets/Models/Materials/body_diff 1.mat
0 → 100644
View file @
5f34f841
%YAML
1.1
%TAG
!u!
tag:unity3d.com,2011:
---
!u!21
&2100000
Material
:
serializedVersion
:
8
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_Name
:
body_diff 1
m_Shader
:
{
fileID
:
4800000
,
guid
:
933532a4fcc9baf4fa0491de14d08ed7
,
type
:
3
}
m_Parent
:
{
fileID
:
0
}
m_ModifiedSerializedProperties
:
0
m_ValidKeywords
:
-
_METALLICSPECGLOSSMAP
-
_SPECGLOSSMAP
m_InvalidKeywords
:
-
_METALLICGLOSSMAP
m_LightmapFlags
:
4
m_EnableInstancingVariants
:
0
m_DoubleSidedGI
:
0
m_CustomRenderQueue
:
-1
stringTagMap
:
RenderType
:
Opaque
disabledShaderPasses
:
-
MOTIONVECTORS
m_LockedProperties
:
m_SavedProperties
:
serializedVersion
:
3
m_TexEnvs
:
-
_BaseMap
:
m_Texture
:
{
fileID
:
2800000
,
guid
:
aab68ecf469354f6490c3b424a83398c
,
type
:
3
}
m_Scale
:
{
x
:
1
,
y
:
1
}
m_Offset
:
{
x
:
0
,
y
:
0
}
-
_BumpMap
:
m_Texture
:
{
fileID
:
0
}
m_Scale
:
{
x
:
1
,
y
:
1
}
m_Offset
:
{
x
:
0
,
y
:
0
}
-
_DetailAlbedoMap
:
m_Texture
:
{
fileID
:
0
}
m_Scale
:
{
x
:
1
,
y
:
1
}
m_Offset
:
{
x
:
0
,
y
:
0
}
-
_DetailMask
:
m_Texture
:
{
fileID
:
0
}
m_Scale
:
{
x
:
1
,
y
:
1
}
m_Offset
:
{
x
:
0
,
y
:
0
}
-
_DetailNormalMap
:
m_Texture
:
{
fileID
:
0
}
m_Scale
:
{
x
:
1
,
y
:
1
}
m_Offset
:
{
x
:
0
,
y
:
0
}
-
_EmissionMap
:
m_Texture
:
{
fileID
:
0
}
m_Scale
:
{
x
:
1
,
y
:
1
}
m_Offset
:
{
x
:
0
,
y
:
0
}
-
_MainTex
:
m_Texture
:
{
fileID
:
2800000
,
guid
:
aab68ecf469354f6490c3b424a83398c
,
type
:
3
}
m_Scale
:
{
x
:
1
,
y
:
1
}
m_Offset
:
{
x
:
0
,
y
:
0
}
-
_MetallicGlossMap
:
m_Texture
:
{
fileID
:
2800000
,
guid
:
aab68ecf469354f6490c3b424a83398c
,
type
:
3
}
m_Scale
:
{
x
:
1
,
y
:
1
}
m_Offset
:
{
x
:
0
,
y
:
0
}
-
_OcclusionMap
:
m_Texture
:
{
fileID
:
0
}
m_Scale
:
{
x
:
1
,
y
:
1
}
m_Offset
:
{
x
:
0
,
y
:
0
}
-
_ParallaxMap
:
m_Texture
:
{
fileID
:
0
}
m_Scale
:
{
x
:
1
,
y
:
1
}
m_Offset
:
{
x
:
0
,
y
:
0
}
-
_SpecGlossMap
:
m_Texture
:
{
fileID
:
2800000
,
guid
:
aab68ecf469354f6490c3b424a83398c
,
type
:
3
}
m_Scale
:
{
x
:
1
,
y
:
1
}
m_Offset
:
{
x
:
0
,
y
:
0
}
-
unity_Lightmaps
:
m_Texture
:
{
fileID
:
0
}
m_Scale
:
{
x
:
1
,
y
:
1
}
m_Offset
:
{
x
:
0
,
y
:
0
}
-
unity_LightmapsInd
:
m_Texture
:
{
fileID
:
0
}
m_Scale
:
{
x
:
1
,
y
:
1
}
m_Offset
:
{
x
:
0
,
y
:
0
}
-
unity_ShadowMasks
:
m_Texture
:
{
fileID
:
0
}
m_Scale
:
{
x
:
1
,
y
:
1
}
m_Offset
:
{
x
:
0
,
y
:
0
}
m_Ints
:
[]
m_Floats
:
-
_AddPrecomputedVelocity
:
0
-
_AlphaClip
:
0
-
_AlphaToMask
:
0
-
_Blend
:
0
-
_BlendModePreserveSpecular
:
1
-
_BumpScale
:
1
-
_ClearCoatMask
:
0
-
_ClearCoatSmoothness
:
0
-
_Cull
:
2
-
_Cutoff
:
0.5
-
_DetailAlbedoMapScale
:
1
-
_DetailNormalMapScale
:
1
-
_DstBlend
:
0
-
_DstBlendAlpha
:
0
-
_EnvironmentReflections
:
1
-
_GlossMapScale
:
0.444
-
_Glossiness
:
0.5
-
_GlossyReflections
:
1
-
_Metallic
:
0.488
-
_Mode
:
0
-
_OcclusionStrength
:
1
-
_Parallax
:
0.02
-
_QueueOffset
:
0
-
_ReceiveShadows
:
1
-
_Smoothness
:
0.444
-
_SmoothnessTextureChannel
:
0
-
_SpecularHighlights
:
1
-
_SrcBlend
:
1
-
_SrcBlendAlpha
:
1
-
_Surface
:
0
-
_UVSec
:
0
-
_WorkflowMode
:
1
-
_XRMotionVectorsPass
:
1
-
_ZWrite
:
1
m_Colors
:
-
_BaseColor
:
{
r
:
0.97735846
,
g
:
0.27107865
,
b
:
0.27107865
,
a
:
1
}
-
_Color
:
{
r
:
0.9773584
,
g
:
0.27107862
,
b
:
0.27107862
,
a
:
1
}
-
_EmissionColor
:
{
r
:
0
,
g
:
0
,
b
:
0
,
a
:
1
}
-
_SpecColor
:
{
r
:
0.2
,
g
:
0.2
,
b
:
0.2
,
a
:
1
}
m_BuildTextureStacks
:
[]
m_AllowLocking
:
1
---
!u!114
&235208687233036427
MonoBehaviour
:
m_ObjectHideFlags
:
11
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
0
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
d0353a89b1f911e48b9e16bdc9f2e058
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
version
:
10
My project/Assets/RobotSphere/Assets/Models/Materials/body_diff 1.mat.meta
0 → 100644
View file @
5f34f841
fileFormatVersion: 2
guid: 38684b09cbd43d64eaf6001670864032
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/Scenes/MCQ/MSQ.unity
View file @
5f34f841
...
...
@@ -577,6 +577,7 @@ MonoBehaviour:
ambientColor
:
{
r
:
0.3137255
,
g
:
0.33333334
,
b
:
0.43137255
,
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
:
10
}
...
...
@@ -930,6 +931,67 @@ PrefabInstance:
m_AddedGameObjects
:
[]
m_AddedComponents
:
[]
m_SourcePrefab
:
{
fileID
:
100100000
,
guid
:
1964cabfcd36cd34e93258702a1d4c9b
,
type
:
3
}
---
!u!1001
&6656915196975163273
PrefabInstance
:
m_ObjectHideFlags
:
0
serializedVersion
:
2
m_Modification
:
serializedVersion
:
3
m_TransformParent
:
{
fileID
:
0
}
m_Modifications
:
-
target
:
{
fileID
:
1751382728646269656
,
guid
:
d9891b839842aaa47b82de83a501bb13
,
type
:
3
}
propertyPath
:
m_Name
value
:
MCQ_Competitor
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
1751382728646269656
,
guid
:
d9891b839842aaa47b82de83a501bb13
,
type
:
3
}
propertyPath
:
m_IsActive
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
3634759875785727473
,
guid
:
d9891b839842aaa47b82de83a501bb13
,
type
:
3
}
propertyPath
:
m_LocalPosition.x
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
3634759875785727473
,
guid
:
d9891b839842aaa47b82de83a501bb13
,
type
:
3
}
propertyPath
:
m_LocalPosition.y
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
3634759875785727473
,
guid
:
d9891b839842aaa47b82de83a501bb13
,
type
:
3
}
propertyPath
:
m_LocalPosition.z
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
3634759875785727473
,
guid
:
d9891b839842aaa47b82de83a501bb13
,
type
:
3
}
propertyPath
:
m_LocalRotation.w
value
:
1
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
3634759875785727473
,
guid
:
d9891b839842aaa47b82de83a501bb13
,
type
:
3
}
propertyPath
:
m_LocalRotation.x
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
3634759875785727473
,
guid
:
d9891b839842aaa47b82de83a501bb13
,
type
:
3
}
propertyPath
:
m_LocalRotation.y
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
3634759875785727473
,
guid
:
d9891b839842aaa47b82de83a501bb13
,
type
:
3
}
propertyPath
:
m_LocalRotation.z
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
3634759875785727473
,
guid
:
d9891b839842aaa47b82de83a501bb13
,
type
:
3
}
propertyPath
:
m_LocalEulerAnglesHint.x
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
3634759875785727473
,
guid
:
d9891b839842aaa47b82de83a501bb13
,
type
:
3
}
propertyPath
:
m_LocalEulerAnglesHint.y
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
3634759875785727473
,
guid
:
d9891b839842aaa47b82de83a501bb13
,
type
:
3
}
propertyPath
:
m_LocalEulerAnglesHint.z
value
:
0
objectReference
:
{
fileID
:
0
}
m_RemovedComponents
:
[]
m_RemovedGameObjects
:
[]
m_AddedGameObjects
:
[]
m_AddedComponents
:
[]
m_SourcePrefab
:
{
fileID
:
100100000
,
guid
:
d9891b839842aaa47b82de83a501bb13
,
type
:
3
}
---
!u!1001
&8716465729602274553
PrefabInstance
:
m_ObjectHideFlags
:
0
...
...
@@ -1003,4 +1065,5 @@ SceneRoots:
-
{
fileID
:
6461165113385171017
}
-
{
fileID
:
1015746448
}
-
{
fileID
:
8716465729602274553
}
-
{
fileID
:
6656915196975163273
}
-
{
fileID
:
610439457
}
My project/Assets/ScienceStreet/MCQ/Scripts/McqCompetitor.cs
0 → 100644
View file @
5f34f841
using
com.al_arcade.mcq
;
using
DG.Tweening
;
using
UnityEngine
;
public
class
McqCompetitor
:
MonoBehaviour
{
private
McqGameManager
_manager
;
private
float
_initialSpeed
;
private
float
_currentSpeed
;
private
bool
_isRunning
;
private
Vector3
_startPosition
;
private
float
timer
=
1
;
private
void
Awake
()
{
_startPosition
=
transform
.
position
;
}
public
void
SetupManager
(
McqGameManager
manager
)
{
if
(
manager
==
null
)
print
(
"Null manager"
);
_manager
=
manager
;
manager
.
onAnswerGiven
.
AddListener
(
ChangeZLevel
);
}
private
void
ChangeZLevel
(
bool
correct
)
{
Stop
();
transform
.
DOKill
();
transform
.
DOMoveZ
(
transform
.
position
.
z
+
(
correct
?
-
10f
:
10f
)
+
_initialSpeed
*
timer
,
timer
)
.
SetEase
(
Ease
.
OutQuad
).
OnComplete
(()
=>
{
RunForward
(
_initialSpeed
);
});
}
public
void
RunForward
(
float
speed
)
{
_initialSpeed
=
speed
;
_currentSpeed
=
speed
;
_isRunning
=
true
;
}
public
void
Stop
()
{
_currentSpeed
=
0
;
_isRunning
=
false
;
}
public
void
ResetToStart
()
{
Stop
();
DOTween
.
Kill
(
transform
);
transform
.
position
=
_startPosition
;
transform
.
rotation
=
Quaternion
.
identity
;
transform
.
localScale
=
Vector3
.
one
;
}
private
void
Update
()
{
if
(!
_isRunning
)
return
;
transform
.
position
+=
Vector3
.
forward
*
(
_currentSpeed
*
Time
.
deltaTime
);
}
}
My project/Assets/ScienceStreet/MCQ/Scripts/McqCompetitor.cs.meta
0 → 100644
View file @
5f34f841
fileFormatVersion: 2
guid: 6ad28f82027dbcd4d9fd3b368f084d04
\ No newline at end of file
My project/Assets/ScienceStreet/MCQ/Scripts/McqGameManager.cs
View file @
5f34f841
...
...
@@ -31,6 +31,7 @@ namespace com.al_arcade.mcq
[
Header
(
"References"
)]
public
McqPlayerRunner
player
;
public
McqCompetitor
competitor
;
public
McqQuestionDisplay
questionDisplay
;
public
McqUIManager
uiManager
;
public
Transform
gateParent
;
...
...
@@ -94,7 +95,8 @@ namespace com.al_arcade.mcq
private
IEnumerator
StartGameRoutine
()
{
player
.
SetupManager
(
this
);
player
?.
SetupManager
(
this
);
competitor
?.
SetupManager
(
this
);
_state
=
McqGameState
.
Loading
;
if
(
uiManager
!=
null
)
uiManager
.
ShowLoading
(
"جاري تحميل الأسئلة..."
);
...
...
@@ -187,6 +189,7 @@ namespace com.al_arcade.mcq
gate
.
onPlayerEnter
+=
OnGateHit
;
if
(
player
!=
null
)
player
.
RunForward
(
playerRunSpeed
);
if
(
competitor
!=
null
)
competitor
.
RunForward
(
playerRunSpeed
);
float
timeout
=
gateSpawnDistance
/
playerRunSpeed
+
5f
;
float
timer
=
0
;
...
...
@@ -196,7 +199,10 @@ namespace com.al_arcade.mcq
yield
return
null
;
}
/*
if (player != null) player.Stop();
if (competitor != null) competitor.Stop();
*/
foreach
(
var
gate
in
_activeGates
)
gate
.
onPlayerEnter
-=
OnGateHit
;
...
...
@@ -219,7 +225,7 @@ namespace com.al_arcade.mcq
yield
return
new
WaitForSeconds
(
0.5f
);
_state
=
McqGameState
.
BetweenQuestions
;
if
(
player
!=
null
)
yield
return
player
.
MoveToNextLane
(
0.4f
);
//
if (player != null) yield return player.MoveToNextLane(0.4f);
if
(
questionDisplay
!=
null
)
questionDisplay
.
Hide
();
}
...
...
@@ -348,8 +354,16 @@ namespace com.al_arcade.mcq
foreach
(
var
g
in
_activeGates
)
{
if
(
g
==
null
)
continue
;
if
(
g
.
GateIndex
==
_correctGateIndex
)
g
.
PlayCorrectAnimation
();
else
g
.
PlayFadeOut
();
if
(
g
.
GateIndex
==
_correctGateIndex
)
{
g
.
PlayCorrectAnimation
();
if
(
questionDisplay
!=
null
)
questionDisplay
.
PlayCorrectAnimation
(
g
.
GateIndex
);
}
else
{
g
.
PlayFadeOut
();
if
(
questionDisplay
!=
null
)
questionDisplay
.
PlayFadeOut
(
g
.
GateIndex
);
}
}
}
...
...
@@ -360,8 +374,16 @@ namespace com.al_arcade.mcq
foreach
(
var
g
in
_activeGates
)
{
if
(
g
==
null
)
continue
;
if
(
g
.
GateIndex
==
_correctGateIndex
)
g
.
PlayRevealCorrect
();
else
if
(
g
.
WasEntered
)
g
.
PlayWrongAnimation
();
if
(
g
.
GateIndex
==
_correctGateIndex
)
{
g
.
PlayRevealCorrect
();
if
(
questionDisplay
!=
null
)
questionDisplay
.
PlayRevealCorrect
(
g
.
GateIndex
);
}
else
if
(
g
.
WasEntered
)
{
g
.
PlayWrongAnimation
();
if
(
questionDisplay
!=
null
)
questionDisplay
.
PlayWrongAnimation
(
g
.
GateIndex
);
}
}
if
(
Camera
.
main
!=
null
)
...
...
My project/Assets/ScienceStreet/MCQ/Scripts/McqPrefabBuilder.cs
View file @
5f34f841
...
...
@@ -36,6 +36,7 @@ namespace com.al_arcade.mcq
"Tag it 'Player'. If null, a procedural player is created."
)]
[
SerializeField
]
private
GameObject
playerPrefab
;
[
SerializeField
]
private
Vector3
playerSpawnPosition
=
Vector3
.
zero
;
[
SerializeField
]
private
GameObject
competitorPrefab
;
[
Header
(
"Answer Gate"
)]
...
...
@@ -97,6 +98,7 @@ namespace com.al_arcade.mcq
private
McqPlayerRunner
_player
;
private
McqQuestionDisplay
_questionDisplay
;
private
McqUIManager
_uiManager
;
private
McqCompetitor
_competitor
;
private
void
Start
()
{
...
...
@@ -167,6 +169,12 @@ namespace com.al_arcade.mcq
rb
.
isKinematic
=
true
;
rb
.
useGravity
=
false
;
}
if
(
competitorPrefab
!=
null
)
{
var
competitorObj
=
Instantiate
(
competitorPrefab
,
playerSpawnPosition
,
Quaternion
.
identity
);
_competitor
=
competitorObj
.
GetComponent
<
McqCompetitor
>();
}
yield
return
null
;
...
...
@@ -220,6 +228,7 @@ namespace com.al_arcade.mcq
var
gmObj
=
new
GameObject
(
"McqGameManager"
);
_gm
=
gmObj
.
AddComponent
<
McqGameManager
>();
_gm
.
player
=
_player
;
_gm
.
competitor
=
_competitor
;
_gm
.
questionDisplay
=
_questionDisplay
;
_gm
.
uiManager
=
_uiManager
;
_gm
.
gateParent
=
new
GameObject
(
"Gates"
).
transform
;
...
...
@@ -304,6 +313,7 @@ namespace com.al_arcade.mcq
{
if
(
_gm
!=
null
)
_gm
.
ResetGame
();
if
(
_player
!=
null
)
_player
.
ResetToStart
();
if
(
_competitor
!=
null
)
_competitor
.
ResetToStart
();
SetupCamera
();
if
(
_gm
!=
null
)
_gm
.
StartGame
();
}
...
...
My project/Assets/ScienceStreet/MCQ/Scripts/McqQuestionDisplay.cs
View file @
5f34f841
...
...
@@ -5,6 +5,7 @@ using UnityEngine;
namespace
com.al_arcade.mcq
{
using
shared
;
using
System.Collections
;
using
static
Unity
.
VisualScripting
.
Member
;
public
class
McqQuestionDisplay
:
MonoBehaviour
...
...
@@ -18,7 +19,9 @@ namespace com.al_arcade.mcq
[
SerializeField
]
private
ArabicTextMeshPro
_sourceText
;
[
Header
(
"Answer Panels"
)]
[
SerializeField
]
private
ArabicTextMeshPro
[]
AnswerPanels
;
[
SerializeField
]
private
ArabicTextMeshPro
[]
AnswerTexts
;
[
SerializeField
]
private
MeshRenderer
[]
PanelRenderers
;
[
SerializeField
]
private
Color
_baseColor
;
private
GameObject
_panel
;
private
Transform
_playerTransform
;
private
bool
_visible
;
...
...
@@ -102,21 +105,71 @@ namespace com.al_arcade.mcq
{
for
(
int
i
=
0
;
i
<
4
;
i
++)
{
Answer
Panel
s
[
i
].
arabicText
=
answers
[
i
];
Answer
Text
s
[
i
].
arabicText
=
answers
[
i
];
}
}
private
IEnumerator
ReturnToBaseColor
(
int
index
)
{
yield
return
new
WaitForSeconds
(
2.8f
);
print
(
"Return for "
+
index
);
PanelRenderers
[
index
].
material
.
DOColor
(
_baseColor
,
0.3f
);
}
public
void
PlayCorrectAnimation
(
int
index
)
{
if
(
PanelRenderers
!=
null
)
PanelRenderers
[
index
].
material
.
DOColor
(
SSColorPalette
.
GateCorrect
,
0.3f
);
transform
.
DOPunchScale
(
Vector3
.
one
*
0.2f
,
0.5f
,
8
,
0.5f
);
if
(
AnswerTexts
!=
null
)
AnswerTexts
[
index
].
transform
.
DOPunchScale
(
Vector3
.
one
*
0.3f
,
0.4f
,
6
,
0.3f
);
StartCoroutine
(
ReturnToBaseColor
(
index
));
print
(
"Correct for "
+
index
);
}
public
void
PlayWrongAnimation
(
int
index
)
{
if
(
PanelRenderers
!=
null
)
PanelRenderers
[
index
].
material
.
DOColor
(
SSColorPalette
.
GateWrong
,
0.3f
);
transform
.
DOShakePosition
(
0.5f
,
0.4f
,
20
,
90f
,
false
,
true
);
transform
.
DOShakeRotation
(
0.5f
,
10f
,
20
,
90f
,
true
);
StartCoroutine
(
ReturnToBaseColor
(
index
));
print
(
"Wrong for "
+
index
);
}
public
void
PlayRevealCorrect
(
int
index
)
{
if
(
PanelRenderers
!=
null
)
{
var
seq
=
DOTween
.
Sequence
();
seq
.
Append
(
PanelRenderers
[
index
].
material
.
DOColor
(
SSColorPalette
.
GateCorrect
,
0.2f
));
seq
.
Append
(
PanelRenderers
[
index
].
material
.
DOColor
(
SSColorPalette
.
Accent
,
0.3f
));
seq
.
Append
(
PanelRenderers
[
index
].
material
.
DOColor
(
SSColorPalette
.
GateCorrect
,
0.3f
));
seq
.
SetLoops
(
3
,
LoopType
.
Restart
);
}
transform
.
DOPunchScale
(
Vector3
.
one
*
0.15f
,
0.8f
,
4
,
0.2f
);
StartCoroutine
(
ReturnToBaseColor
(
index
));
print
(
"Reveal for "
+
index
);
}
public
void
PlayFadeOut
(
int
index
)
{
/*
if (_panelMaterial != null) _panelMaterial.DOFade(0.3f, 0.5f);
*/
if
(
PanelRenderers
!=
null
)
PanelRenderers
[
index
].
material
.
DOFade
(
0.3f
,
0.5f
);
transform
.
DOScale
(
Vector3
.
one
*
0.8f
,
0.5f
).
SetEase
(
Ease
.
InBack
);
StartCoroutine
(
ReturnToBaseColor
(
index
));
print
(
"Fade for "
+
index
);
}
public
void
Show
(
McqQuestion
question
)
{
if
(
_questionText
!=
null
)
_questionText
.
arabicText
=
question
.
question_text
??
""
;
if
(
_sourceText
!=
null
)
_sourceText
.
arabicText
=
!
string
.
IsNullOrEmpty
(
question
.
source
)
?
$"📖
{
question
.
source
}
"
:
""
;
if
(
Answer
Panel
s
.
Length
==
4
)
if
(
Answer
Text
s
.
Length
==
4
)
{
Answer
Panel
s
[
0
].
arabicText
=
question
.
answer1
;
Answer
Panel
s
[
1
].
arabicText
=
question
.
answer2
;
Answer
Panel
s
[
2
].
arabicText
=
question
.
answer3
;
Answer
Panel
s
[
3
].
arabicText
=
question
.
answer4
;
Answer
Text
s
[
0
].
arabicText
=
question
.
answer1
;
Answer
Text
s
[
1
].
arabicText
=
question
.
answer2
;
Answer
Text
s
[
2
].
arabicText
=
question
.
answer3
;
Answer
Text
s
[
3
].
arabicText
=
question
.
answer4
;
}
_visible
=
true
;
DOTween
.
Kill
(
transform
,
"displayScale"
);
...
...
My project/UserSettings/Layouts/default-6000.dwlt
View file @
5f34f841
This diff is collapsed.
Click to expand it.
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