Initial commit

This commit is contained in:
Ardella Malinda Sarastri
2025-07-10 17:06:42 +07:00
commit 72b8b42a0b
8149 changed files with 4223394 additions and 0 deletions

View File

@ -0,0 +1 @@
{"androidStore":"GooglePlay"}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 47ee60abed1514dababc02a35d8293ea
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@ -0,0 +1,140 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &319398986043626711
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 785763412374789818}
- component: {fileID: 7015320508283337349}
- component: {fileID: 486522181739725220}
- component: {fileID: 1039877131302109580}
m_Layer: 0
m_Name: Dots 1
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &785763412374789818
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 319398986043626711}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 2, y: 2, z: 2}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7015320508283337349
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 319398986043626711}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3}
m_Color: {r: 0.11372549, g: 1, b: 0.8352941, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 1, y: 1}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &486522181739725220
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 319398986043626711}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 11518baead38f7c46a03489cc7c09661, type: 3}
m_Name:
m_EditorClassIdentifier:
isDifferent: 0
sprite: {fileID: 7015320508283337349}
redValue: 0
greenValue: 0
blueValue: 0
--- !u!58 &1039877131302109580
CircleCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 319398986043626711}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_ForceSendLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ForceReceiveLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ContactCaptureLayers:
serializedVersion: 2
m_Bits: 4294967295
m_CallbackLayers:
serializedVersion: 2
m_Bits: 4294967295
m_IsTrigger: 1
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: 0, y: 0}
serializedVersion: 2
m_Radius: 0.5

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6aa4728acadddf644b365433dbefc6e4
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,94 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7871307963615678600
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8615473580852410743}
- component: {fileID: 4596729100013083618}
- component: {fileID: 8926734215222152371}
- component: {fileID: 5452406788060373828}
m_Layer: 5
m_Name: Dots
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8615473580852410743
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7871307963615678600}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.3424, y: 0.3424, z: 0.3424}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 70, y: 171}
m_SizeDelta: {x: 476.6505, y: 476.6505}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4596729100013083618
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7871307963615678600}
m_CullTransparentMesh: 1
--- !u!114 &8926734215222152371
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7871307963615678600}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.008141518, g: 0, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: -2413806693520163455, guid: 7e213845e3ee6bb47899115dcd3d6ffb, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &5452406788060373828
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7871307963615678600}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 11518baead38f7c46a03489cc7c09661, type: 3}
m_Name:
m_EditorClassIdentifier:
image: {fileID: 8926734215222152371}
redValue: 0
greenValue: 0
blueValue: 0

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 922aef67589cabe488dd99c00fec58e3
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,137 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1162867882491205106
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5407407503906889453}
- component: {fileID: 2899868161041141898}
- component: {fileID: 7928419509168381202}
- component: {fileID: 2419188734955269422}
m_Layer: 0
m_Name: SameDots
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5407407503906889453
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1162867882491205106}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 10, y: 2.25, z: 0}
m_LocalScale: {x: 2, y: 2, z: 2}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2899868161041141898
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1162867882491205106}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3}
m_Color: {r: 0.71829915, g: 0.9490196, b: 0.6117647, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 1, y: 1}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!58 &7928419509168381202
CircleCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1162867882491205106}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_ForceSendLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ForceReceiveLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ContactCaptureLayers:
serializedVersion: 2
m_Bits: 4294967295
m_CallbackLayers:
serializedVersion: 2
m_Bits: 4294967295
m_IsTrigger: 1
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: 0, y: 0}
serializedVersion: 2
m_Radius: 0.5
--- !u!114 &2419188734955269422
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1162867882491205106}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c940e254c8f971d45a9cc975aa3de997, type: 3}
m_Name:
m_EditorClassIdentifier:
index: 0
sprite: {fileID: 2899868161041141898}

View File

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

View File

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

View File

@ -0,0 +1,500 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1963160862648856519
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6332466293313995089}
- component: {fileID: 1346425798279528164}
- component: {fileID: 7126450072952254097}
- component: {fileID: 1560273638242167490}
m_Layer: 5
m_Name: AverageDataDisplay
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6332466293313995089
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1963160862648856519}
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: 1863640361538362678}
- {fileID: 4013599976793054767}
- {fileID: 3932025024964869806}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 713.03, y: 283}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1346425798279528164
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1963160862648856519}
m_CullTransparentMesh: 1
--- !u!114 &7126450072952254097
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1963160862648856519}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.79079384, g: 0.93962574, b: 0.9547169, 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: 74e324dd9cbd34aa2811e539973caac7, 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: 1
--- !u!114 &1560273638242167490
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1963160862648856519}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 104d6574fb136aa46b03339eb07ed2c5, type: 3}
m_Name:
m_EditorClassIdentifier:
data: []
responseTimeList: []
stageText: {fileID: 6615389757084420365}
jumlahSalahText: {fileID: 2564702300718587932}
responseTimeText: {fileID: 6280040936493118705}
--- !u!1 &5664700189354168597
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1863640361538362678}
- component: {fileID: 5503009369978322682}
- component: {fileID: 6615389757084420365}
m_Layer: 5
m_Name: 'Stage '
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1863640361538362678
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5664700189354168597}
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: 6332466293313995089}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 10.5, y: -13.25}
m_SizeDelta: {x: 485.5909, y: 89.7078}
m_Pivot: {x: 0, y: 1}
--- !u!222 &5503009369978322682
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5664700189354168597}
m_CullTransparentMesh: 1
--- !u!114 &6615389757084420365
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5664700189354168597}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'Stage : Deutan'
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 5c5ee151f9307453bad78be36b51a077, type: 2}
m_sharedMaterial: {fileID: 2517202264660172603, guid: 5c5ee151f9307453bad78be36b51a077, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 64
m_fontSizeBase: 64
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &8256480103862193718
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4013599976793054767}
- component: {fileID: 2504700162754291991}
- component: {fileID: 2564702300718587932}
m_Layer: 5
m_Name: Jumlah Salah
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4013599976793054767
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8256480103862193718}
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: 6332466293313995089}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 10.5, y: -100}
m_SizeDelta: {x: 510.5432, y: 63.4422}
m_Pivot: {x: 0, y: 1}
--- !u!222 &2504700162754291991
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8256480103862193718}
m_CullTransparentMesh: 1
--- !u!114 &2564702300718587932
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8256480103862193718}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'Jumlah Salah : '
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 50c12c23294124aa48490c44ac65a9e4, type: 2}
m_sharedMaterial: {fileID: 7746803525459343344, guid: 50c12c23294124aa48490c44ac65a9e4, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 40
m_fontSizeBase: 40
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &8976727440476285841
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3932025024964869806}
- component: {fileID: 1006755574535511889}
- component: {fileID: 6280040936493118705}
m_Layer: 5
m_Name: Rata Rata Response Time
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3932025024964869806
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8976727440476285841}
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: 6332466293313995089}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 10.5, y: -164.5}
m_SizeDelta: {x: 702.53, y: 63.4422}
m_Pivot: {x: 0, y: 1}
--- !u!222 &1006755574535511889
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8976727440476285841}
m_CullTransparentMesh: 1
--- !u!114 &6280040936493118705
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8976727440476285841}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'Rata Rata Response Time : 23s'
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 50c12c23294124aa48490c44ac65a9e4, type: 2}
m_sharedMaterial: {fileID: 7746803525459343344, guid: 50c12c23294124aa48490c44ac65a9e4, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 40
m_fontSizeBase: 40
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4dfc962c2a0efa24e81412123723bedf
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,644 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &111384675554203438
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3776859144521590657}
- component: {fileID: 5155670117034888351}
- component: {fileID: 3797562467083114185}
m_Layer: 5
m_Name: Level
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3776859144521590657
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 111384675554203438}
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: 4690020162035885051}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 19, y: -9}
m_SizeDelta: {x: 253.2742, y: 74.6881}
m_Pivot: {x: 0, y: 1}
--- !u!222 &5155670117034888351
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 111384675554203438}
m_CullTransparentMesh: 1
--- !u!114 &3797562467083114185
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 111384675554203438}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'Level 1 '
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 5c5ee151f9307453bad78be36b51a077, type: 2}
m_sharedMaterial: {fileID: 2517202264660172603, guid: 5c5ee151f9307453bad78be36b51a077, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 64
m_fontSizeBase: 64
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &2231409079835292116
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4690020162035885051}
- component: {fileID: 3580728234893487592}
- component: {fileID: 6705694850817165265}
- component: {fileID: 7274855291737038625}
m_Layer: 5
m_Name: DetailDatadisplay
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4690020162035885051
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2231409079835292116}
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: 1
m_Children:
- {fileID: 3776859144521590657}
- {fileID: 5168664882974991433}
- {fileID: 7219546479642867740}
- {fileID: 6765480811978542882}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 713.03, y: 283}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3580728234893487592
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2231409079835292116}
m_CullTransparentMesh: 1
--- !u!114 &6705694850817165265
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2231409079835292116}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.79079384, g: 0.93962574, b: 0.9547169, 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: 74e324dd9cbd34aa2811e539973caac7, 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: 1
--- !u!114 &7274855291737038625
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2231409079835292116}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 50fcd948d6d41284193f80addb075a3c, type: 3}
m_Name:
m_EditorClassIdentifier:
data:
correct: 0
level: 0
stageLevel: 0
stage: 0
globalStage: 0
responseTime: 0
levelText: {fileID: 3797562467083114185}
stageText: {fileID: 6780488837243352522}
isCorrectText: {fileID: 5315380764608913304}
responseTimeText: {fileID: 387815040761323240}
bg: {fileID: 6705694850817165265}
differentColorModeColor: {r: 0.7921569, g: 0.9411765, b: 0.9529412, a: 1}
sameColorModeColor: {r: 0.9529412, g: 0.8666667, b: 0.7921569, a: 1}
--- !u!1 &2919630729561506377
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6765480811978542882}
- component: {fileID: 1755938682986481637}
- component: {fileID: 387815040761323240}
m_Layer: 5
m_Name: ResponseTime
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6765480811978542882
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2919630729561506377}
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: 4690020162035885051}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
m_AnchoredPosition: {x: -95.121826, y: 40.914307}
m_SizeDelta: {x: 506.0264, y: 70.242}
m_Pivot: {x: 0.5, y: 0}
--- !u!222 &1755938682986481637
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2919630729561506377}
m_CullTransparentMesh: 1
--- !u!114 &387815040761323240
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2919630729561506377}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'Response Time : 222.222s'
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 5c5ee151f9307453bad78be36b51a077, type: 2}
m_sharedMaterial: {fileID: 2517202264660172603, guid: 5c5ee151f9307453bad78be36b51a077, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 46
m_fontSizeBase: 46
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &4157072479690452804
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7219546479642867740}
- component: {fileID: 8320432554715755}
- component: {fileID: 5315380764608913304}
m_Layer: 5
m_Name: Menjawab
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7219546479642867740
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4157072479690452804}
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: 4690020162035885051}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 10.5, y: 1.9727}
m_SizeDelta: {x: 361.4963, y: 64.6334}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &8320432554715755
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4157072479690452804}
m_CullTransparentMesh: 1
--- !u!114 &5315380764608913304
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4157072479690452804}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Menjawab Salah
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 5c5ee151f9307453bad78be36b51a077, type: 2}
m_sharedMaterial: {fileID: 2517202264660172603, guid: 5c5ee151f9307453bad78be36b51a077, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 46
m_fontSizeBase: 46
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &6560326739214587045
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5168664882974991433}
- component: {fileID: 321922190464817745}
- component: {fileID: 6780488837243352522}
m_Layer: 5
m_Name: Tritan
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5168664882974991433
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6560326739214587045}
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: 4690020162035885051}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -13, y: -6}
m_SizeDelta: {x: 253.27417, y: 74.6881}
m_Pivot: {x: 1, y: 1}
--- !u!222 &321922190464817745
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6560326739214587045}
m_CullTransparentMesh: 1
--- !u!114 &6780488837243352522
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6560326739214587045}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Tritan
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 5c5ee151f9307453bad78be36b51a077, type: 2}
m_sharedMaterial: {fileID: 2517202264660172603, guid: 5c5ee151f9307453bad78be36b51a077, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 64
m_fontSizeBase: 64
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}

View File

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

View File

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

Binary file not shown.

View File

@ -0,0 +1,113 @@
using UnityEngine;
using System.Collections;
[ExecuteInEditMode]
public class AnchorGameObject : MonoBehaviour
{
public enum AnchorType
{
BottomLeft,
BottomCenter,
BottomRight,
MiddleLeft,
MiddleCenter,
MiddleRight,
TopLeft,
TopCenter,
TopRight,
};
public bool executeInUpdate;
public AnchorType anchorType;
public Vector3 anchorOffset;
IEnumerator updateAnchorRoutine; //Coroutine handle so we don't start it if it's already running
// Use this for initialization
void Start()
{
updateAnchorRoutine = UpdateAnchorAsync();
StartCoroutine(updateAnchorRoutine);
}
/// <summary>
/// Coroutine to update the anchor only once CameraFit.Instance is not null.
/// </summary>
IEnumerator UpdateAnchorAsync()
{
uint cameraWaitCycles = 0;
while (CameraViewportHandler.Instance == null)
{
++cameraWaitCycles;
yield return new WaitForEndOfFrame();
}
if (cameraWaitCycles > 0)
{
print(string.Format("CameraAnchor found CameraFit instance after waiting {0} frame(s). " +
"You might want to check that CameraFit has an earlie execution order.", cameraWaitCycles));
}
UpdateAnchor();
updateAnchorRoutine = null;
}
void UpdateAnchor()
{
switch (anchorType)
{
case AnchorType.BottomLeft:
SetAnchor(CameraViewportHandler.Instance.BottomLeft);
break;
case AnchorType.BottomCenter:
SetAnchor(CameraViewportHandler.Instance.BottomCenter);
break;
case AnchorType.BottomRight:
SetAnchor(CameraViewportHandler.Instance.BottomRight);
break;
case AnchorType.MiddleLeft:
SetAnchor(CameraViewportHandler.Instance.MiddleLeft);
break;
case AnchorType.MiddleCenter:
SetAnchor(CameraViewportHandler.Instance.MiddleCenter);
break;
case AnchorType.MiddleRight:
SetAnchor(CameraViewportHandler.Instance.MiddleRight);
break;
case AnchorType.TopLeft:
SetAnchor(CameraViewportHandler.Instance.TopLeft);
break;
case AnchorType.TopCenter:
SetAnchor(CameraViewportHandler.Instance.TopCenter);
break;
case AnchorType.TopRight:
SetAnchor(CameraViewportHandler.Instance.TopRight);
break;
}
}
void SetAnchor(Vector3 anchor)
{
Vector3 newPos = anchor + anchorOffset;
if (!transform.position.Equals(newPos))
{
transform.position = newPos;
}
}
#if UNITY_EDITOR
// Update is called once per frame
void Update()
{
if (updateAnchorRoutine == null && executeInUpdate)
{
updateAnchorRoutine = UpdateAnchorAsync();
StartCoroutine(updateAnchorRoutine);
}
}
#endif
}

View File

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

View File

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

View File

@ -0,0 +1,121 @@
using System;
using System.Collections.Generic;
using UnityEngine;
public class AudioManager : MonoBehaviour
{
public static AudioManager Instance;
public Sound[] musicSounds, sfxSounds;
public AudioSource musicSource, sfxSource;
private Dictionary<string, Sound> musicDictionary = new Dictionary<string, Sound>();
private Dictionary<string, Sound> sfxDictionary = new Dictionary<string, Sound>();
void Awake()
{
if (Instance == null)
{
Instance = this;
DontDestroyOnLoad(gameObject);
Setup();
}
else
{
if (Instance != this)
{
Destroy(gameObject);
}
}
}
private void Setup()
{
for (int i = 0; i < musicSounds.Length; i++)
{
musicDictionary[musicSounds[i].name] = musicSounds[i];
}
for (int i = 0; i < sfxSounds.Length; i++)
{
sfxDictionary[sfxSounds[i].name] = sfxSounds[i];
}
}
public void StopMusic()
{
musicSource.Stop();
}
public void PlayMusic(SoundName name)
{
Sound s = Array.Find(musicSounds, sound => sound.soundName == name);
if (s != null)
{
musicSource.clip = s.clip;
musicSource.Play();
}
}
public void PlayMusic(string name)
{
Sound s = musicDictionary[name];
if (s != null)
{
musicSource.clip = s.clip;
musicSource.Play();
}
}
public void PlaySfx(string name)
{
Sound s = sfxDictionary[name];
if (s != null)
{
sfxSource.PlayOneShot(s.clip);
}
}
public void PlaySfx(AudioClip clip)
{
sfxSource.PlayOneShot(clip);
}
public void PlaySfx(SoundName name)
{
Sound s = Array.Find(sfxSounds, sound => sound.soundName == name);
if (s != null)
{
sfxSource.PlayOneShot(s.clip);
}
}
public void PlaySfx(Sound sound)
{
if (sound != null)
{
sfxSource.PlayOneShot(sound.clip);
}
}
public void PlaySfx(Sound[] randomSound)
{
if (randomSound != null)
{
sfxSource.PlayOneShot(randomSound[UnityEngine.Random.Range(0, randomSound.Length)].clip);
}
}
public void PlaySfx(SoundName[] randomName)
{
SoundName name = randomName[UnityEngine.Random.Range(0, randomName.Length)];
Sound s = Array.Find(sfxSounds, sound => sound.soundName == name);
if (s != null)
{
sfxSource.PlayOneShot(s.clip);
}
}
public void SetSfxVolume(float volume)
{
sfxSource.volume = volume;
}
public void SetMusicVolume(float volume)
{
musicSource.volume = volume;
}
}

View File

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

View File

@ -0,0 +1,11 @@
using UnityEngine;
[System.Serializable]
public class Sound
{
public string name;
public SoundName soundName;
public AudioClip clip;
}

View File

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

View File

@ -0,0 +1,9 @@
using UnityEngine;
[System.Serializable]
public class SoundList
{
[SerializeField] private Sound[] soundList;
}

View File

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

View File

@ -0,0 +1,6 @@
public enum SoundName
{
GameMusic, MainMenuMusic
}

View File

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

View File

@ -0,0 +1,193 @@
using UnityEngine;
[ExecuteInEditMode]
[RequireComponent(typeof(Camera))]
public class CameraViewportHandler : MonoBehaviour
{
public enum Constraint { Landscape, Portrait }
#region FIELDS
public Color wireColor = Color.white;
public float UnitsSize = 1; // size of your scene in unity units
public Constraint constraint = Constraint.Portrait;
public static CameraViewportHandler Instance;
public new Camera camera;
public bool executeInUpdate;
private float _width;
private float _height;
//*** bottom screen
private Vector3 _bl;
private Vector3 _bc;
private Vector3 _br;
//*** middle screen
private Vector3 _ml;
private Vector3 _mc;
private Vector3 _mr;
//*** top screen
private Vector3 _tl;
private Vector3 _tc;
private Vector3 _tr;
#endregion
#region PROPERTIES
public float Width
{
get
{
return _width;
}
}
public float Height
{
get
{
return _height;
}
}
// helper points:
public Vector3 BottomLeft
{
get
{
return _bl;
}
}
public Vector3 BottomCenter
{
get
{
return _bc;
}
}
public Vector3 BottomRight
{
get
{
return _br;
}
}
public Vector3 MiddleLeft
{
get
{
return _ml;
}
}
public Vector3 MiddleCenter
{
get
{
return _mc;
}
}
public Vector3 MiddleRight
{
get
{
return _mr;
}
}
public Vector3 TopLeft
{
get
{
return _tl;
}
}
public Vector3 TopCenter
{
get
{
return _tc;
}
}
public Vector3 TopRight
{
get
{
return _tr;
}
}
#endregion
#region METHODS
private void Awake()
{
camera = GetComponent<Camera>();
Instance = this;
ComputeResolution();
}
private void ComputeResolution()
{
float leftX, rightX, topY, bottomY;
if (constraint == Constraint.Landscape)
{
camera.orthographicSize = 1f / camera.aspect * UnitsSize / 2f;
}
else
{
camera.orthographicSize = UnitsSize / 2f;
}
_height = 2f * camera.orthographicSize;
_width = _height * camera.aspect;
float cameraX, cameraY;
cameraX = camera.transform.position.x;
cameraY = camera.transform.position.y;
leftX = cameraX - _width / 2;
rightX = cameraX + _width / 2;
topY = cameraY + _height / 2;
bottomY = cameraY - _height / 2;
//*** bottom
_bl = new Vector3(leftX, bottomY, 0);
_bc = new Vector3(cameraX, bottomY, 0);
_br = new Vector3(rightX, bottomY, 0);
//*** middle
_ml = new Vector3(leftX, cameraY, 0);
_mc = new Vector3(cameraX, cameraY, 0);
_mr = new Vector3(rightX, cameraY, 0);
//*** top
_tl = new Vector3(leftX, topY, 0);
_tc = new Vector3(cameraX, topY, 0);
_tr = new Vector3(rightX, topY, 0);
}
private void Update()
{
#if UNITY_EDITOR
if (executeInUpdate)
ComputeResolution();
#endif
}
void OnDrawGizmos()
{
Gizmos.color = wireColor;
Matrix4x4 temp = Gizmos.matrix;
Gizmos.matrix = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one);
if (camera.orthographic)
{
float spread = camera.farClipPlane - camera.nearClipPlane;
float center = (camera.farClipPlane + camera.nearClipPlane) * 0.5f;
Gizmos.DrawWireCube(new Vector3(0, 0, center), new Vector3(camera.orthographicSize * 2 * camera.aspect, camera.orthographicSize * 2, spread));
}
else
{
Gizmos.DrawFrustum(Vector3.zero, camera.fieldOfView, camera.farClipPlane, camera.nearClipPlane, camera.aspect);
}
Gizmos.matrix = temp;
}
#endregion
} // class

View File

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

View File

@ -0,0 +1,74 @@
using System.Collections.Generic;
using UnityEngine;
public class Dot : MonoBehaviour
{
[SerializeField] public bool isDifferent;
[SerializeField] private SpriteRenderer sprite;
[Range(0, 255)]
[SerializeField] private float redValue;
[Range(0, 255)]
[SerializeField] private float greenValue;
[Range(0, 255)]
[SerializeField] private float blueValue;
public void SetDifferent(bool val)
{
isDifferent = val;
}
public Vector2 GetPos()
{
return transform.position;
}
public void ChangeRed(float val)
{
redValue = val;
}
public void ChangeBlue(float val)
{
blueValue = val;
}
public void ChangeGreen(float val)
{
greenValue = val;
}
public void ChangeColor(Color color)
{
sprite.color = color;
}
public void CheckOverlapping()
{
List<Dot> dots = DotsManager.Instance.GetDots();
for (int i = 0; i < dots.Count; i++)
{
if (dots[i] != this)
{
if (Vector2.Distance(transform.position, dots[i].transform.position) < 2.5f)
{
Debug.Log("Overlapping");
DotsManager.Instance.MoveDots(this);
break;
}
}
}
}
private void Start()
{
LeanTween.scale(gameObject, new Vector3(1.5f, 1.5f, 1.5f), 0.25f).setEaseInOutCubic();
LeanTween.scale(gameObject, new Vector3(2, 2, 2), 0.5f).setDelay(0.2f).setEaseInOutCubic();
}
private void OnMouseDown()
{
GameManager.Instance.ClickDot(this);
}
public Vector3 GetRGB()
{
return new Vector3(redValue, greenValue, blueValue);
}
private byte FloatToByteColor(float val)
{
return (byte)((val * 255) * 255);
}
}

View File

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

View File

@ -0,0 +1,186 @@
using System.Collections.Generic;
using UnityEngine;
public enum Level
{
Protan, Deutan, Tritan
}
public enum Stage
{
Differentcolor,SameColor
}
public class DotsManager : MonoBehaviour
{
public static DotsManager Instance;
[SerializeField] private int dotsCount;
[SerializeField] private Dot dotsPrefab;
[SerializeField] private float saturationLevel = 50f;
[SerializeField] private Transform parent; // nge spawn dotnya di child ini
[SerializeField] private List<Transform> cornerPosition; //buat nge fixing pas di android
[SerializeField] private List<Dot> dotsSpawned;
[SerializeField] private LevelScriptable currentLevelPlay;
[SerializeField] private List<LevelScriptable> levelList;
[SerializeField] Color selectedColor;
[SerializeField] Color saturatedColor;
private void Awake()
{
Instance = this;
}
public LevelScriptable GetCurrentLevel()
{
return currentLevelPlay;
}
public void StartDots()
{
ChangeMainColor();
SpawnDots();
ChangeDotsColor();
saturatedColor = currentLevelPlay.rgbSaturatedList[0];
Change1Saturation();
}
public void ClearWrongColor()
{
for (int i = 0; i < dotsSpawned.Count; i++)
{
if (!dotsSpawned[i].isDifferent)
{
dotsSpawned[i].gameObject.SetActive(false);
}
}
}
public void SetStage(int index)
{
selectedColor = currentLevelPlay.rgbList[index];
saturatedColor = currentLevelPlay.rgbSaturatedList[index];
dotsCount = currentLevelPlay.dotCount[index];
}
public void StartPlay()
{
currentLevelPlay = levelList[0];
}
public void SetLevel(Level level)
{
if (level == Level.Protan)
{
currentLevelPlay = levelList[0];
}
else if (level == Level.Deutan)
{
currentLevelPlay = levelList[1];
}
else if (level == Level.Tritan)
{
currentLevelPlay = levelList[2];
}
}
public void DecreaseSaturationLevel()
{
saturationLevel *= 0.8f;
}
public Color GetRGB()
{
return selectedColor;
}
public void IncreaseSaturationLevel()
{
saturationLevel *= 1.2f;
}
public void ChangeColor(Color val)
{
selectedColor = val;
}
private void Update()
{
if (Input.GetKey(KeyCode.Space))
{
ClearDots();
SpawnDots();
Change1Saturation();
}
}
public void NextStage()
{
ClearDots();
SpawnDots();
Change1Saturation();
}
public void Change1Saturation()
{
for (int i = 0; i < dotsSpawned.Count; i++)
{
dotsSpawned[i].SetDifferent(false);
}
int rIndex = Random.Range(0, dotsSpawned.Count);
dotsSpawned[rIndex].ChangeColor(saturatedColor);
dotsSpawned[rIndex].SetDifferent(true);
Debug.Log("CurStage : 1");
}
public void ChangeMainColor()
{
if (GameManager.Instance.currentLevel == Level.Protan)
{
selectedColor = currentLevelPlay.rgbList[0];
}
else if (GameManager.Instance.currentLevel == Level.Deutan)
{
selectedColor = currentLevelPlay.rgbList[0];
//selectedColor = Color.yellow;
}
else if (GameManager.Instance.currentLevel == Level.Tritan)
{
selectedColor = currentLevelPlay.rgbList[0];
//selectedColor = Color.blue;
}
}
public void ChangeDotsColor()
{
for (int i = 0; i < dotsSpawned.Count; i++)
{
dotsSpawned[i].ChangeColor(selectedColor);
}
}
public List<Dot> GetDots()
{
return dotsSpawned;
}
public void ClearDots()
{
foreach (Dot d in dotsSpawned)
{
Destroy(d.gameObject);
}
dotsSpawned.Clear();
}
private void SpawnDots()
{
for (int i = 0; i < dotsCount; i++)
{
Dot dot = Instantiate(dotsPrefab, parent);
dot.transform.position = GetNewPosition();
dotsSpawned.Add(dot);
dot.ChangeColor(selectedColor);
dot.CheckOverlapping();
}
}
public void MoveDots(Dot dot)
{
dot.transform.position = GetNewPosition();
dot.CheckOverlapping();
}
Vector2 GetNewPosition()
{
Vector2 newpos = new Vector2(Random.Range(cornerPosition[0].position.x, cornerPosition[1].position.x), Random.Range(cornerPosition[2].position.y, cornerPosition[0].position.y));
return newpos;
}
}

View File

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

View File

@ -0,0 +1,455 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
[System.Serializable]
public class Answer
{
public bool correct;
public Level level;
public Stage stageLevel;
public int stage;
public int globalStage;
public float responseTime;
public Answer(bool correct, Level level, Stage stageLevel,int stage, int globalStage,float responseTime)
{
this.correct = correct;
this.level = level;
this.stageLevel = stageLevel;
this.stage = stage;
this.globalStage = globalStage;
this.responseTime = responseTime;
}
}
public class GameManager : MonoBehaviour
{
public event Action OnDotClicked;
public event Action<bool, int> OnAnswer;
public event Action OnNext;
public event Action OnLevelCleared;
public event Action<int> OnGlobalStageAdded;
public event Action<float> OnShowResult;
public static GameManager Instance;
public Level currentLevel;
public Stage currentStageLevel;
public int currentStage;
public int currentGlobalStage;
public int currentDifficulty;
[SerializeField] private DotsManager dotsManager;
[SerializeField] private SameColorDotsManager sameColorDotsManager;
[SerializeField] private GuideManager guideManager;
[SerializeField] private MainMenuUI mainMenuUI;
[SerializeField] private GameUI gameUI;
[SerializeField] private GuideUI guideUI;
[SerializeField] private CameraColorController camColorController;
[SerializeField] private ExampleDisplay exampleDisplay;
[SerializeField] private SalahDisplay salahDisplay;
[SerializeField] private float protanPoint;
[SerializeField] private float deutanPoint;
[SerializeField] private float tritanPoint;
[SerializeField] private bool isAnswering;
private Stack<Color> rgbStored = new Stack<Color>();
[SerializeField] private List<Answer> answers = new List<Answer>();
[SerializeField] private float showGuideMaxCooldown;
[SerializeField] private float showGuidecurrentCooldown;
[SerializeField] private bool isStart;
[SerializeField] private bool isChoosing;
[SerializeField] private bool guideShowing;
[SerializeField] private float responseTime;
[SerializeField] private ParticleSystem confettiParticle;
private void Awake()
{
Instance = this;
}
private void OnDestroy()
{
OnDotClicked = null;
OnShowResult = null;
OnNext = null;
OnLevelCleared = null;
OnGlobalStageAdded = null;
}
private void Update()
{
if (isStart && isChoosing)
{
if (showGuidecurrentCooldown > 0)
{
showGuidecurrentCooldown -= Time.deltaTime;
}
else if (showGuidecurrentCooldown < 0)
{
Debug.Log("Showing Guide");
AudioManager.Instance.PlaySfx("Guide Show");
if (currentStageLevel == Stage.Differentcolor)
{
guideUI.Show("Tekan Lingkaran yang warnanya\n berbeda dari yang lain!");
}
else {
guideUI.Show("Tekan Lingkaran yang\n warnanya sama!");
}
guideShowing = true;
showGuidecurrentCooldown = 0;
}
responseTime += Time.deltaTime;
}
}
public void ShowGuide()
{
showGuidecurrentCooldown = 0.1f;
}
public void HideGuide()
{
if (guideShowing)
{
guideUI.Hide();
ResetGuide();
}
}
public void ResetGuide()
{
showGuidecurrentCooldown = 5;
}
public void NextStage()
{
Debug.Log("NextStage");
GameManager.Instance.StartStage(Stage.Differentcolor);
}
private void Start()
{
Application.targetFrameRate = 60;
LeanTween.reset();
gameUI.Hide();
mainMenuUI.Show();
AudioManager.Instance.PlayMusic("Music 1");
}
public void OpenGuide()
{
guideManager.Show();
}
public void CloseGuide()
{
guideManager.Hide();
}
public void QuitGame()
{
Application.Quit();
}
public void StartStage(Stage stage)
{
if (stage == Stage.Differentcolor)
{
currentStageLevel = stage;
camColorController.ChangeColor(Level.Protan);
dotsManager.StartDots();
ShowGuide();
}
else if (stage == Stage.SameColor)
{
currentStageLevel = stage;
dotsManager.ClearDots();
sameColorDotsManager.Play();
ShowGuide();
}
}
public void StartGame()
{
AudioManager.Instance.StopMusic();
AudioManager.Instance.PlayMusic("Music 2");
gameUI.Show();
currentLevel = Level.Protan;
sameColorDotsManager.ResetLevel();
dotsManager.StartPlay();
currentStage = 1;
currentDifficulty = 1;
protanPoint = 0.5f;
deutanPoint = 0.5f;
tritanPoint = 0.5f;
currentGlobalStage = 1;
StartStage(Stage.Differentcolor);
dotsManager.SetStage(currentDifficulty - 1);
isChoosing = true;
OnDotClicked?.Invoke();
mainMenuUI.Hide();
OnGlobalStageAdded.Invoke(currentGlobalStage);
ClearAnswer();
isStart = true;
guideShowing = true;
guideUI.Show();
}
private void ClearAnswer()
{
answers.Clear();
}
public void SetIsChoosing(bool val)
{
isChoosing = val;
}
public void AnswerSameColorDots(bool correct)
{
answers.Add(new Answer(correct, currentLevel, currentStageLevel, currentStage,currentGlobalStage, responseTime));
this.responseTime = 0;
}
private void AddAnswer(bool correct, Level level,Stage stageLevel, int stage, int globalStage,float responseTime)
{
answers.Add(new Answer(correct, level,stageLevel, stage, globalStage, responseTime));
this.responseTime = 0;
}
public void GoToMenu()
{
gameUI.Hide();
mainMenuUI.Show();
AudioManager.Instance.StopMusic();
AudioManager.Instance.PlayMusic("Music 1");
camColorController.ChangeColorToMenu();
}
public void ClickDot(Dot dot)
{
if (isAnswering)
return;
if (guideShowing)
{
guideUI.Hide();
}
if (currentStage > 4)
{
isAnswering = true;
isChoosing = false;
if (dot.isDifferent)
{
OnAnswer?.Invoke(true, currentStage - 1);
AddAnswer(true, currentLevel, currentStageLevel, currentStage, currentGlobalStage, responseTime);
dotsManager.ClearDots();
if (currentLevel == Level.Protan)
{
StartCoroutine(NextLevelDelay(Level.Deutan));
}
else if (currentLevel == Level.Deutan)
{
StartCoroutine(NextLevelDelay(Level.Tritan));
}
else if (currentLevel == Level.Tritan)
{
StartCoroutine(LastStageDelay());
//StartCoroutine(ShowResultDelay());
}
AudioManager.Instance.PlaySfx("Jawab Benar");
}
else
{
OnAnswer?.Invoke(false, currentStage - 1);
AddAnswer(false, currentLevel, currentStageLevel, currentStage, currentGlobalStage, responseTime);
dotsManager.ClearWrongColor();
if (currentLevel == Level.Protan)
{
StartCoroutine(NextLevelDelay(Level.Deutan));
}
else if (currentLevel == Level.Deutan)
{
StartCoroutine(NextLevelDelay(Level.Tritan));
}
else if (currentLevel == Level.Tritan)
{
StartCoroutine(LastStageDelay());
//StartCoroutine(ShowResultDelay());
}
AudioManager.Instance.PlaySfx("Jawab Salah");
}
Debug.Log("Level Clear!");
}
else
{
isChoosing = false;
if (dot.isDifferent)
{
OnAnswer?.Invoke(true, currentStage - 1);
Debug.Log("Jawaban Benar");
Next(true, dot);
AudioManager.Instance.PlaySfx("Jawab Benar");
}
else
{
OnAnswer?.Invoke(false, currentStage - 1);
Debug.Log("Jawaban Salah");
if (currentLevel == Level.Protan)
{
protanPoint -= 0.1f;
}
else if (currentLevel == Level.Deutan)
{
deutanPoint -= 0.1f;
}
else if (currentLevel == Level.Tritan)
{
tritanPoint -= 0.1f;
}
Next(false, dot);
AudioManager.Instance.PlaySfx("Jawab Salah");
}
}
OnDotClicked?.Invoke();
}
public void ViewGameResult()
{
ShowResult(protanPoint + deutanPoint + tritanPoint + sameColorDotsManager.score);
}
public List<Answer> GetAnswers()
{
return answers;
}
public IEnumerator ShowResultDelay()
{
isStart = false;
dotsManager.ClearDots();
yield return new WaitForSeconds(2);
exampleDisplay.Hide();
ShowResult(protanPoint + deutanPoint + tritanPoint + sameColorDotsManager.score);
dotsManager.ClearDots();
Debug.Log("Clear! Show Result");
isAnswering = false;
OnNext?.Invoke();
}
public void Next(bool isCorrect, Dot dot)
{
isAnswering = true;
AddAnswer(isCorrect, currentLevel, currentStageLevel, currentStage, currentGlobalStage, responseTime);
if (isCorrect)
{
dotsManager.ClearDots();
StartCoroutine(NextCorrectDelay(dot));
}
else
{
dotsManager.ClearWrongColor();
StartCoroutine(NextIncorrectDelay());
}
}
public IEnumerator NextCorrectDelay(Dot dot)
{
yield return new WaitForSeconds(2f);
exampleDisplay.Hide();
dotsManager.DecreaseSaturationLevel();
currentStage++;
currentDifficulty++;
Vector3 rgb = dot.GetRGB();
rgbStored.Push(dotsManager.GetRGB());
currentGlobalStage++;
OnGlobalStageAdded.Invoke(currentGlobalStage);
dotsManager.SetStage(currentDifficulty - 1);
dotsManager.NextStage();
OnNext?.Invoke();
isAnswering = false;
isChoosing = true;
showGuidecurrentCooldown = showGuideMaxCooldown;
}
public void AddGlobalStage()
{
currentGlobalStage++;
OnGlobalStageAdded.Invoke(currentGlobalStage);
}
public IEnumerator NextIncorrectDelay()
{
yield return new WaitForSeconds(3f);
dotsManager.IncreaseSaturationLevel();
currentStage++;
if (currentDifficulty > 1)
{
currentDifficulty--;
}
dotsManager.SetStage(currentDifficulty - 1);
dotsManager.NextStage();
OnNext?.Invoke();
currentGlobalStage++;
OnGlobalStageAdded.Invoke(currentGlobalStage);
isAnswering = false;
isChoosing = true;
showGuidecurrentCooldown = showGuideMaxCooldown;
}
public void ChangeLevel()
{
if (currentLevel == Level.Protan)
{
currentLevel = Level.Deutan;
dotsManager.SetLevel(currentLevel);
}
else if (currentLevel == Level.Deutan)
{
currentLevel = Level.Tritan;
dotsManager.SetLevel(currentLevel);
}
else if (currentLevel == Level.Tritan)
{
StartCoroutine(LastStageDelay());
//StartCoroutine(ShowResultDelay());
}
}
public IEnumerator NextLevelDelay(Level level)
{
camColorController.ChangeColor(level);
yield return new WaitForSeconds(2f);
currentGlobalStage++;
OnGlobalStageAdded.Invoke(currentGlobalStage);
currentStage = 1;
currentDifficulty = 1;
dotsManager.SetLevel(currentLevel);
dotsManager.SetStage(currentDifficulty - 1);
dotsManager.NextStage();
OnNext?.Invoke();
isAnswering = false;
isChoosing = true;
exampleDisplay.Hide();
showGuidecurrentCooldown = showGuideMaxCooldown;
if (currentStageLevel == Stage.Differentcolor)
{
StartStage(Stage.SameColor);
}
}
public IEnumerator LastStageDelay()
{
yield return new WaitForSeconds(2f);
//currentGlobalStage++;
//OnGlobalStageAdded.Invoke(currentGlobalStage);
//currentStage = 1;
//currentDifficulty = 1;
dotsManager.SetLevel(currentLevel);
dotsManager.SetStage(currentDifficulty - 1);
dotsManager.NextStage();
OnNext?.Invoke();
isAnswering = false;
isChoosing = true;
exampleDisplay.Hide();
showGuidecurrentCooldown = showGuideMaxCooldown;
if (currentStageLevel == Stage.Differentcolor)
{
StartStage(Stage.SameColor);
}
}
public int GetGlobalStage()
{
return currentGlobalStage;
}
public void ShowResult(float result)
{
isStart = false;
confettiParticle.Play();
OnShowResult?.Invoke(result);
}
}

View File

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

View File

@ -0,0 +1,13 @@
using UnityEngine;
using System.Collections.Generic;
using System.Collections;
[CreateAssetMenu(fileName = "Level", menuName = "ScriptableObjects/Level", order = 1)]
public class LevelScriptable : ScriptableObject
{
public List<Color> rgbList;
public List<Color> rgbSaturatedList;
public List<int> dotCount;
public List<Sprite> displaySprite;
public List<string> displayString;
}

View File

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

View File

@ -0,0 +1,13 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "MatchDotLevel", menuName = "ScriptableObjects/MatchDotLevel", order = 1)]
public class MatchDotLevelScriptable : ScriptableObject
{
public int colorCount;
public List<Color> colors = new List<Color>();
public List<int> id = new List<int>();
}

View File

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

View File

@ -0,0 +1,59 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SameColorDot : MonoBehaviour
{
public int index;
public int id;
public SpriteRenderer sprite;
private SameColorDotsManager manager;
public void SetData(SameColorDotsManager manager)
{
this.manager = manager;
}
public void SetId(int id)
{
this.id = id;
}
private void Start()
{
LeanTween.scale(gameObject, new Vector3(1.5f, 1.5f, 1.5f), 0.25f).setEaseInOutCubic();
LeanTween.scale(gameObject, new Vector3(2, 2, 2), 0.5f).setDelay(0.2f).setEaseInOutCubic();
}
public void ChangeColor(Color color)
{
sprite.color = color;
}
public Color GetColor()
{
return sprite.color;
}
private void OnMouseDown()
{
manager.SelectColor(this);
}
public void Select()
{
LeanTween.scale(gameObject, new Vector3(1.5f, 1.5f, 1.5f), 0.25f).setEaseInOutCubic();
}
public void Deselect()
{
LeanTween.scale(gameObject, new Vector3(2f, 2f, 2f), 0.25f).setEaseInOutCubic();
}
public void Destroying()
{
// LeanTween.scale(gameObject, new Vector3(2f, 2f, 2f), 0.25f).setEaseInOutCubic();
LeanTween.scale(gameObject, new Vector3(1.5f, 1.5f, 1.5f), 0.25f).setEaseInOutCubic();
StartCoroutine(DestroyDelay());
}
private IEnumerator DestroyDelay()
{
yield return new WaitForSeconds(0.25f);
LeanTween.scale(gameObject, new Vector3(0.05f, 0.05f, 0.05f), 1f).setEaseInOutCubic();
}
}

View File

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

View File

@ -0,0 +1,150 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SameColorDotsManager : MonoBehaviour
{
public float score;
[SerializeField] private bool isPlaying;
[SerializeField] private SameColorDot sameColorDotPrefab;
[SerializeField] private List<Transform> places = new List<Transform>();
[SerializeField] private List<SameColorDot> dotInScene = new List<SameColorDot>();
[SerializeField] List<SameColorDot> dotTemp = new List<SameColorDot>();
[SerializeField] Queue<SameColorDot> dotQueue = new Queue<SameColorDot>();
[SerializeField] private int level;
[SerializeField] private List<MatchDotLevelScriptable> MatchDotLevels = new List<MatchDotLevelScriptable>();
[SerializeField] private SalahDisplay salahDisplay;
[SerializeField] private SameDotsBenarDisplay exampleDisplay;
[SerializeField] private SameColorDot dotSelected;
[SerializeField] private bool isColorSelected;
[SerializeField] private bool isSelectingColor;
[SerializeField] private int pairLeft;
//[SerializeField] private
public void SelectColor(SameColorDot dot)
{
if (isSelectingColor) return;
if (!isColorSelected)
{
isColorSelected = true;
dotSelected = dot;
dot.Select();
AudioManager.Instance.PlaySfx("Click");
}
else
{
if (dotSelected == dot) return;
AudioManager.Instance.PlaySfx("Click");
StartCoroutine(CheckColorDelay(dot));
}
}
private IEnumerator CheckColorDelay(SameColorDot dot)
{
isSelectingColor = true;
dot.Select();
GameManager.Instance.ResetGuide();
if (dotSelected.id == dot.id)
{
exampleDisplay.Display();
dotSelected.Destroying();
dot.Destroying();
AudioManager.Instance.PlaySfx("Jawab Benar");
GameManager.Instance.AnswerSameColorDots(true);
GameManager.Instance.SetIsChoosing(false);
}
else
{
salahDisplay.Display();
AudioManager.Instance.PlaySfx("Jawab Salah");
GameManager.Instance.AnswerSameColorDots(false);
GameManager.Instance.SetIsChoosing(false);
}
yield return new WaitForSeconds(1f);
if (dotSelected.id == dot.id)
{
//Correct
exampleDisplay.Hide();
Destroy(dotSelected.gameObject);
Destroy(dot.gameObject);
isColorSelected = false;
pairLeft--;
GameManager.Instance.HideGuide();
GameManager.Instance.AddGlobalStage();
}
else
{
//Incorrect
salahDisplay.Hide();
dotSelected.Deselect();
dot.Deselect();
isColorSelected = false;
dotSelected = null;
if (score > 0)
{
score -= 0.1f;
}
}
if (pairLeft == 0)
{
if (level < 2)
{
AddLevel();
GameManager.Instance.ChangeLevel();
GameManager.Instance.NextStage();
}
else
{
GameManager.Instance.ViewGameResult();
}
}
GameManager.Instance.SetIsChoosing(true);
isSelectingColor = false;
}
public void AddLevel()
{
level++;
}
public void ResetLevel()
{
level = 0;
}
public void Play()
{
pairLeft = 6;
dotTemp.Clear();
dotInScene.Clear();
for (int i = 0; i < places.Count; i++)
{
SameColorDot dot = Instantiate(sameColorDotPrefab, places[i].transform.position, Quaternion.identity);
dot.SetData(this);
dot.index = i;
dotTemp.Add(dot);
dotInScene.Add(dot);
}
for (int i = 0; i < dotTemp.Count;)
{
int r = Random.Range(0, dotTemp.Count);
dotQueue.Enqueue(dotTemp[r]);
dotTemp.RemoveAt(r);
}
Debug.Log("Dot Count : " + dotQueue.Count);
int index = 0;
while (dotQueue.Count > 0)
{
SameColorDot dot = dotQueue.Dequeue();
dot.ChangeColor(MatchDotLevels[level].colors[index]);
dot.SetId(MatchDotLevels[level].id[index]);
index++;
Debug.Log("Dequeued Dot Index : " + dot.index);
}
}
}

View File

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

View File

@ -0,0 +1,26 @@
using UnityEngine;
public class ScaleToFitScreen : MonoBehaviour
{
private SpriteRenderer sr;
private void Start()
{
sr = GetComponent<SpriteRenderer>();
// world height is always camera's orthographicSize * 2
float worldScreenHeight = Camera.main.orthographicSize * 2;
// world width is calculated by diving world height with screen heigh
// then multiplying it with screen width
float worldScreenWidth = worldScreenHeight / Screen.height * Screen.width;
// to scale the game object we divide the world screen width with the
// size x of the sprite, and we divide the world screen height with the
// size y of the sprite
transform.localScale = new Vector3(
worldScreenWidth / sr.sprite.bounds.size.x,
worldScreenHeight / sr.sprite.bounds.size.y, 1);
}
} // class

View File

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

View File

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

View File

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

View File

@ -0,0 +1,59 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 63bbcdf74f6e3cb42aac3213512180d4, type: 3}
m_Name: Deutan
m_EditorClassIdentifier:
rgbList:
- {r: 0.33299276, g: 0.86415094, b: 0.05706645, a: 1}
- {r: 0.33299276, g: 0.86415094, b: 0.05706645, a: 1}
- {r: 0.33299276, g: 0.86415094, b: 0.05706645, a: 1}
- {r: 0.33299276, g: 0.86415094, b: 0.05706645, a: 1}
- {r: 0.33299276, g: 0.86415094, b: 0.05706645, a: 1}
- {r: 0.33299276, g: 0.86415094, b: 0.05706645, a: 1}
- {r: 0.33299276, g: 0.86415094, b: 0.05706645, a: 1}
- {r: 0.33299276, g: 0.86415094, b: 0.05706645, a: 1}
- {r: 0.33299276, g: 0.86415094, b: 0.05706645, a: 1}
- {r: 0.33299276, g: 0.86415094, b: 0.05706645, a: 1}
rgbSaturatedList:
- {r: 0.42558023, g: 0.98490566, b: 0.16167314, a: 1}
- {r: 0.42558023, g: 0.98490566, b: 0.16167314, a: 1}
- {r: 0.42558023, g: 0.98490566, b: 0.16167314, a: 1}
- {r: 0.42558023, g: 0.98490566, b: 0.16167314, a: 1}
- {r: 0.42558023, g: 0.98490566, b: 0.16167314, a: 1}
- {r: 0.42558023, g: 0.98490566, b: 0.16167314, a: 1}
- {r: 0.42558023, g: 0.98490566, b: 0.16167314, a: 1}
- {r: 0.42558023, g: 0.98490566, b: 0.16167314, a: 1}
- {r: 0.42558023, g: 0.98490566, b: 0.16167314, a: 1}
- {r: 0.42558023, g: 0.98490566, b: 0.16167314, a: 1}
dotCount: 04000000040000000500000005000000060000000600000005000000050000000600000006000000
displaySprite:
- {fileID: 21300000, guid: 0f3af4fc4419bf940bba624a9ac98748, type: 3}
- {fileID: 21300000, guid: 0f3af4fc4419bf940bba624a9ac98748, type: 3}
- {fileID: 21300000, guid: 0f3af4fc4419bf940bba624a9ac98748, type: 3}
- {fileID: 21300000, guid: 0f3af4fc4419bf940bba624a9ac98748, type: 3}
- {fileID: 21300000, guid: 0f3af4fc4419bf940bba624a9ac98748, type: 3}
- {fileID: 21300000, guid: 0f3af4fc4419bf940bba624a9ac98748, type: 3}
- {fileID: 21300000, guid: 0f3af4fc4419bf940bba624a9ac98748, type: 3}
- {fileID: 21300000, guid: 0f3af4fc4419bf940bba624a9ac98748, type: 3}
- {fileID: 21300000, guid: 0f3af4fc4419bf940bba624a9ac98748, type: 3}
- {fileID: 21300000, guid: 0f3af4fc4419bf940bba624a9ac98748, type: 3}
displayString:
- Brokoli berwarna Hijau
- Brokoli berwarna Hijau
- Brokoli berwarna Hijau
- Brokoli berwarna Hijau
- Brokoli berwarna Hijau
- Brokoli berwarna Hijau
- Brokoli berwarna Hijau
- Brokoli berwarna Hijau
- Brokoli berwarna Hijau
- Brokoli berwarna Hijau

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9416d429868f8c6499c95f55002e4c9c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,59 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 63bbcdf74f6e3cb42aac3213512180d4, type: 3}
m_Name: Protan
m_EditorClassIdentifier:
rgbList:
- {r: 0.8113208, g: 0, b: 0.0042478093, a: 1}
- {r: 0.8113208, g: 0, b: 0.0042478093, a: 1}
- {r: 0.8113208, g: 0, b: 0.0042478093, a: 1}
- {r: 0.8113208, g: 0, b: 0.0042478093, a: 1}
- {r: 0.8113208, g: 0, b: 0.0042478093, a: 1}
- {r: 0.8113208, g: 0, b: 0.0042478093, a: 1}
- {r: 0.8113208, g: 0, b: 0.0042478093, a: 1}
- {r: 0.8113208, g: 0, b: 0.0042478093, a: 1}
- {r: 0.8113208, g: 0, b: 0.0042478093, a: 1}
- {r: 0.8113208, g: 0, b: 0.0042478093, a: 1}
rgbSaturatedList:
- {r: 0.93207544, g: 0.19520827, b: 0.19906625, a: 1}
- {r: 0.93207544, g: 0.19520827, b: 0.19906625, a: 1}
- {r: 0.93207544, g: 0.19520827, b: 0.19906625, a: 1}
- {r: 0.93207544, g: 0.19520827, b: 0.19906625, a: 1}
- {r: 0.93207544, g: 0.19520827, b: 0.19906625, a: 1}
- {r: 0.93207544, g: 0.19520827, b: 0.19906625, a: 1}
- {r: 0.93207544, g: 0.19520827, b: 0.19906625, a: 1}
- {r: 0.93207544, g: 0.19520827, b: 0.19906625, a: 1}
- {r: 0.93207544, g: 0.19520827, b: 0.19906625, a: 1}
- {r: 0.93207544, g: 0.19520827, b: 0.19906625, a: 1}
dotCount: 04000000040000000500000005000000060000000600000005000000050000000600000006000000
displaySprite:
- {fileID: 21300000, guid: c3f44276ad38a694fa113bc758a5c4fe, type: 3}
- {fileID: 21300000, guid: e4464c541f39f9745b541ff6a798507e, type: 3}
- {fileID: 21300000, guid: 6c8a85fb7fc9d75449a1850506698aad, type: 3}
- {fileID: 21300000, guid: ba4a9cdc6e2777c45b17820bd3b18667, type: 3}
- {fileID: 21300000, guid: c3f44276ad38a694fa113bc758a5c4fe, type: 3}
- {fileID: 21300000, guid: e4464c541f39f9745b541ff6a798507e, type: 3}
- {fileID: 21300000, guid: 6c8a85fb7fc9d75449a1850506698aad, type: 3}
- {fileID: 21300000, guid: b847208fce4f21b448ff26a643810308, type: 3}
- {fileID: 21300000, guid: c3f44276ad38a694fa113bc758a5c4fe, type: 3}
- {fileID: 21300000, guid: e4464c541f39f9745b541ff6a798507e, type: 3}
displayString:
- Buah apel berwarna merah
- Buah Strawberi berwarna merah
- Tomat berwarna merah
- Kacang berwarna Coklat
- Buah apel berwarna merah
- Buah Strawberi berwarna merah
- Tomat berwarna merah
- Cabai berwarna merah
- Buah apel berwarna merah
- Buah Strawberi berwarna merah

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7133b420ee80789419dbfee4aa31bbc4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,59 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 63bbcdf74f6e3cb42aac3213512180d4, type: 3}
m_Name: Tritan
m_EditorClassIdentifier:
rgbList:
- {r: 0.022107378, g: 0.78113204, b: 0.71408993, a: 1}
- {r: 0.022107378, g: 0.78113204, b: 0.71408993, a: 1}
- {r: 0.022107378, g: 0.78113204, b: 0.71408993, a: 1}
- {r: 0.022107378, g: 0.78113204, b: 0.71408993, a: 1}
- {r: 0.022107378, g: 0.78113204, b: 0.71408993, a: 1}
- {r: 0.022107378, g: 0.78113204, b: 0.71408993, a: 1}
- {r: 0.022107378, g: 0.78113204, b: 0.71408993, a: 1}
- {r: 0.022107378, g: 0.78113204, b: 0.71408993, a: 1}
- {r: 0.022107378, g: 0.78113204, b: 0.71408993, a: 1}
- {r: 0.022107378, g: 0.78113204, b: 0.71408993, a: 1}
rgbSaturatedList:
- {r: 0.24705881, g: 0.94335365, b: 1, a: 1}
- {r: 0.24705881, g: 0.94335365, b: 1, a: 1}
- {r: 0.24705881, g: 0.94335365, b: 1, a: 1}
- {r: 0.24705881, g: 0.94335365, b: 1, a: 1}
- {r: 0.24705881, g: 0.94335365, b: 1, a: 1}
- {r: 0.24705881, g: 0.94335365, b: 1, a: 1}
- {r: 0.24705881, g: 0.94335365, b: 1, a: 1}
- {r: 0.24705881, g: 0.94335365, b: 1, a: 1}
- {r: 0.24705881, g: 0.94335365, b: 1, a: 1}
- {r: 0.24705881, g: 0.94335365, b: 1, a: 1}
dotCount: 04000000040000000500000005000000060000000600000005000000050000000600000006000000
displaySprite:
- {fileID: 21300000, guid: c3f44276ad38a694fa113bc758a5c4fe, type: 3}
- {fileID: 21300000, guid: c3f44276ad38a694fa113bc758a5c4fe, type: 3}
- {fileID: 21300000, guid: c3f44276ad38a694fa113bc758a5c4fe, type: 3}
- {fileID: 21300000, guid: c3f44276ad38a694fa113bc758a5c4fe, type: 3}
- {fileID: 21300000, guid: c3f44276ad38a694fa113bc758a5c4fe, type: 3}
- {fileID: 21300000, guid: c3f44276ad38a694fa113bc758a5c4fe, type: 3}
- {fileID: 21300000, guid: c3f44276ad38a694fa113bc758a5c4fe, type: 3}
- {fileID: 21300000, guid: c3f44276ad38a694fa113bc758a5c4fe, type: 3}
- {fileID: 21300000, guid: c3f44276ad38a694fa113bc758a5c4fe, type: 3}
- {fileID: 21300000, guid: c3f44276ad38a694fa113bc758a5c4fe, type: 3}
displayString:
-
-
-
-
-
-
-
-
-
-

View File

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

View File

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

View File

@ -0,0 +1,29 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: ad389b71d712964409097bb8596a101d, type: 3}
m_Name: MatchDotLevel 1
m_EditorClassIdentifier:
colorCount: 12
colors:
- {r: 1, g: 0.12631074, b: 0.073584795, a: 1}
- {r: 1, g: 0.1254902, b: 0.07450981, a: 1}
- {r: 0.89433956, g: 0.261552, b: 0.3003623, a: 1}
- {r: 0.89411765, g: 0.2627451, b: 0.3019608, a: 1}
- {r: 0.9924528, g: 0.35165524, b: 0.2902455, a: 1}
- {r: 0.99607843, g: 0.3529412, b: 0.29411766, a: 1}
- {r: 0.8867924, g: 0.22277398, b: 0.2058027, a: 1}
- {r: 0.8862745, g: 0.22352941, b: 0.20392157, a: 1}
- {r: 0.96981126, g: 0.26898536, b: 0.45062613, a: 1}
- {r: 0.96862745, g: 0.27058825, b: 0.4509804, a: 1}
- {r: 1, g: 0.18823528, b: 0.55308914, a: 1}
- {r: 1, g: 0.1882353, b: 0.5568628, a: 1}
id: 010000000100000002000000020000000300000003000000040000000400000005000000050000000600000006000000

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9dfb5522c5ec35b4fb7d079afb4e38d4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,29 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: ad389b71d712964409097bb8596a101d, type: 3}
m_Name: MatchDotLevel 2
m_EditorClassIdentifier:
colorCount: 12
colors:
- {r: 0.3157891, g: 0.99215686, b: 0.21568628, a: 1}
- {r: 0.31764707, g: 0.99215686, b: 0.2153434, a: 1}
- {r: 0.77703065, g: 0.99215686, b: 0.627451, a: 1}
- {r: 0.7764706, g: 0.99215686, b: 0.627451, a: 1}
- {r: 0.8433925, g: 0.9764706, b: 0.5294118, a: 1}
- {r: 0.84705883, g: 0.9764706, b: 0.5294118, a: 1}
- {r: 0.6, g: 0.78431374, b: 0.40784314, a: 1}
- {r: 0.59879977, g: 0.78113204, b: 0.4053043, a: 1}
- {r: 0.50884163, g: 1, b: 0.45882356, a: 1}
- {r: 0.50980395, g: 1, b: 0.45882356, a: 1}
- {r: 0.6441413, g: 1, b: 0.33725488, a: 1}
- {r: 0.6431373, g: 1, b: 0.3372549, a: 1}
id: 010000000100000002000000020000000300000003000000040000000400000005000000050000000600000006000000

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 985b55fe284d6d9418928b9f794746dc
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,29 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: ad389b71d712964409097bb8596a101d, type: 3}
m_Name: MatchDotLevel 3
m_EditorClassIdentifier:
colorCount: 12
colors:
- {r: 0.6698113, g: 1, b: 0.950717, a: 1}
- {r: 0.67058825, g: 1, b: 0.9490196, a: 1}
- {r: 0.627451, g: 0.99215686, b: 0.7926314, a: 1}
- {r: 0.627451, g: 0.99215686, b: 0.7921569, a: 1}
- {r: 0.67731583, g: 0.7807961, b: 0.94716984, a: 1}
- {r: 0.6784314, g: 0.78431374, b: 0.9490196, a: 1}
- {r: 0.72561765, g: 0.75381833, b: 0.79622644, a: 1}
- {r: 0.7294118, g: 0.75686276, b: 0.8, a: 1}
- {r: 0.65389097, g: 0.9185385, b: 0.9547169, a: 1}
- {r: 0.654902, g: 0.92156863, b: 0.95686275, a: 1}
- {r: 0.33725488, g: 1, b: 0.76732063, a: 1}
- {r: 0.3372549, g: 1, b: 0.76862746, a: 1}
id: 010000000100000002000000020000000300000003000000040000000400000005000000050000000600000006000000

View File

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

View File

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

View File

@ -0,0 +1,37 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;
using TMPro;
using UnityEngine.UI;
public class AverageDataDisplay : MonoBehaviour
{
[SerializeField] private List<Answer> data = new List<Answer>();
[SerializeField] private List<float> responseTimeList = new List<float>();
[SerializeField] private TextMeshProUGUI stageText;
[SerializeField] private TextMeshProUGUI jumlahSalahText;
[SerializeField] private TextMeshProUGUI responseTimeText;
public void SetData(List<Answer> data, Level level)
{
int jumlahSalah = 0;
for (int i = 0; i < data.Count; i++)
{
if (data[i].level == level)
{
this.data.Add(data[i]);
responseTimeList.Add(data[i].responseTime);
if (!data[i].correct)
{
jumlahSalah++;
}
}
}
float average = responseTimeList.Average();
stageText.text = "Stage : " + level.ToString();
jumlahSalahText.text = "Jumlah Salah : " + jumlahSalah.ToString();
responseTimeText.text = "Rata Rata Response Time : " + average.ToString("F1") + "s";
}
}

View File

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

View File

@ -0,0 +1,39 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraColorController : MonoBehaviour
{
[SerializeField] private Camera cam;
[SerializeField] private Color menuColor;
[SerializeField] private Color colorProtan;
[SerializeField] private Color colorDeutan;
[SerializeField] private Color colorTritan;
[SerializeField] private float duration;
public void ChangeColor(Level level)
{
if (level == Level.Protan)
{
LeanTween.value(gameObject, UpdateColor, menuColor, colorProtan, duration)
.setEase(LeanTweenType.easeInOutQuad);
} else if (level == Level.Deutan)
{
LeanTween.value(gameObject, UpdateColor, colorProtan, colorDeutan, duration)
.setEase(LeanTweenType.easeInOutQuad);
} else if (level == Level.Tritan)
{
LeanTween.value(gameObject, UpdateColor, colorDeutan, colorTritan, duration)
.setEase(LeanTweenType.easeInOutQuad);
}
}
public void ChangeColorToMenu()
{
LeanTween.value(gameObject, UpdateColor, colorTritan, menuColor, duration)
.setEase(LeanTweenType.easeInOutQuad);
}
public void UpdateColor(Color color)
{
cam.backgroundColor = color;
}
}

View File

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

View File

@ -0,0 +1,40 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.UI;
public class DetailDataDisplay : MonoBehaviour
{
[SerializeField] private Answer data;
[SerializeField] private TextMeshProUGUI levelText;
[SerializeField] private TextMeshProUGUI stageText;
[SerializeField] private TextMeshProUGUI isCorrectText;
[SerializeField] private TextMeshProUGUI responseTimeText;
[SerializeField] private Image bg;
[SerializeField] private Color differentColorModeColor;
[SerializeField] private Color sameColorModeColor;
public void SetData(Answer data)
{
this.data = data;
levelText.text = "Level " +data.globalStage.ToString();
stageText.text = "Stage " +data.level.ToString();
if (data.correct)
{
isCorrectText.text = "Menjawab Benar";
}
else {
isCorrectText.text = "Menjawab Salah ";
}
responseTimeText.text = "Response Time :" + data.responseTime.ToString("F1")+"s";
if (data.stageLevel == Stage.Differentcolor)
{
bg.color = differentColorModeColor;
}
else {
bg.color = sameColorModeColor;
}
}
}

View File

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

View File

@ -0,0 +1,27 @@
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class ExampleDisplay : UIManager
{
[SerializeField] private Image image;
[SerializeField] private Image mascotImage;
[SerializeField] private Image thumbsImage;
[SerializeField] private TextMeshProUGUI displayText;
public void Display(Sprite sprite,string displayString)
{
Show();
LeanTween.scale(image.gameObject, new Vector3(1.5f,1.5f,1.5f), 0.25f).setEaseInOutCubic();
//LeanTween.scale(mascotImage.gameObject, new Vector3(0.75f, 0.75f, 0.75f), 0.25f).setEaseInOutCubic();
LeanTween.rotate(thumbsImage.gameObject, new Vector3(0,0,30), 0.25f).setEaseInOutCubic();
LeanTween.rotate(mascotImage.gameObject, new Vector3(0,0,30), 0.25f).setEaseInOutCubic();
LeanTween.scale(image.gameObject, new Vector3(1,1,1), 0.5f).setDelay(0.2f).setEaseInOutCubic();
LeanTween.scale(displayText.gameObject, new Vector3(0.75f, 0.75f, 0.75f), 0.25f).setEaseInOutCubic();
LeanTween.rotate(thumbsImage.gameObject, new Vector3(0, 0, 0), 0.25f).setDelay(0.2f).setEaseInOutCubic();
LeanTween.rotate(mascotImage.gameObject, new Vector3(0, 0, 0), 0.25f).setDelay(0.2f).setEaseInOutCubic();
LeanTween.scale(displayText.gameObject, new Vector3(1,1,1), 0.5f).setDelay(0.2f).setEaseInOutCubic();
//LeanTween.scale(mascotImage.gameObject, new Vector3(1,1,1), 0.5f).setDelay(0.2f).setEaseInOutCubic();
image.sprite = sprite;
displayText.text = displayString;
}
}

View File

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

View File

@ -0,0 +1,139 @@
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.UI;
public class GameUI : UIManager
{
[SerializeField] private GameManager gameManager;
[SerializeField] private DotsManager dotsManager;
[SerializeField] private TextMeshProUGUI levelText;
[SerializeField] private TextMeshProUGUI stageText;
[SerializeField] private TextMeshProUGUI resultText;
[SerializeField] private TextMeshProUGUI rankText;
[SerializeField] private TextMeshProUGUI correctText;
[SerializeField] private GameObject mainMenuButton;
[SerializeField] private GameObject showSummaryButton;
[SerializeField] private Slider progressBar;
[SerializeField] private float targetProgress;
private float fillspeed = 1f;
[SerializeField] private SummaryDisplay summaryDisplay;
[SerializeField] private SalahDisplay salahDisplay;
[SerializeField] private ExampleDisplay exampleDisplay;
private void Awake()
{
gameManager.OnShowResult += ShowResult;
gameManager.OnAnswer += ShowCorrect;
gameManager.OnNext += Next;
gameManager.OnGlobalStageAdded += DisplayProgressBar;
}
private void DisplayProgressBar(int val)
{
float progress = (float)((float)val / 33f);
targetProgress = progress;
}
private void Update()
{
progressBar.value = Mathf.Lerp(progressBar.value, targetProgress, fillspeed * Time.deltaTime);
}
public void OpenSummary()
{
summaryDisplay.Show();
}
public void CloseSummary()
{
summaryDisplay.Hide();
}
private void Start()
{
ToggleMainMenuButton(false);
ToggleSummaryButton(false);
}
public void ToggleMainMenuButton(bool val)
{
mainMenuButton.SetActive(val);
}
public void ToggleSummaryButton(bool val)
{
showSummaryButton.SetActive(val);
}
public void Next()
{
ResetCorrect();
AudioManager.Instance.PlaySfx("Mulai Game");
}
public void GoToMainMenu()
{
ToggleSummaryButton(false);
ToggleMainMenuButton(false);
resultText.text = "";
rankText.text = "";
GameManager.Instance.GoToMenu();
}
public void ShowCorrect(bool val,int currentStage)
{
levelText.text = "";
stageText.text = "";
if (val)
{
exampleDisplay.Display(dotsManager.GetCurrentLevel().displaySprite[currentStage], dotsManager.GetCurrentLevel().displayString[currentStage]);
}
else {
salahDisplay.Display();
}
}
public void ResetCorrect()
{
salahDisplay.Hide();
exampleDisplay.Hide();
correctText.text = "";
}
public void ShowResult(float result)
{
ResetCorrect();
ToggleMainMenuButton(true);
ToggleSummaryButton(true);
levelText.text = "";
stageText.text = "";
string rank;
if (result > 2.8f)
{
rank = "A";
}
else if (result > 2.4f)
{
rank = "B";
}
else if (result > 1.8f)
{
rank = "C";
}
else if (result > 1f)
{
rank = "D";
}
else {
rank = "E";
}
rankText.text = rank.ToString();
float finalScore = (result / 3f) * 100f;
resultText.text = "Kamu Dapat " +rank +" , dengan skor "+ finalScore.ToString("F0");
//fuzzy logic
if (result > 2.4f)
{
resultText.text += "\n(Tinggi, Mata aman)";
}
else if (result > 1.5f)
{
resultText.text += "\n(Sedang, Zona Abu Abu)";
}
else {
resultText.text += "\n(Rendah, Buta Warna)";
}
}
}

View File

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

View File

@ -0,0 +1,53 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class GuideManager : UIManager
{
[SerializeField] private Image imageDisplay;
[SerializeField] private TextMeshProUGUI textDisplay;
[SerializeField] private TextMeshProUGUI indexDisplay;
[TextArea]
[SerializeField] private string[] textList;
[SerializeField] private Sprite[] imageList;
[SerializeField] private int currentIndex;
public override void Show()
{
base.Show();
currentIndex = 0;
DisplayGuide();
}
public void Next()
{
if (currentIndex < imageList.Length - 1)
{
currentIndex++;
AudioManager.Instance.PlaySfx("Click");
DisplayGuide();
}
}
public void Prev()
{
if (currentIndex > 0)
{
currentIndex--;
DisplayGuide();
AudioManager.Instance.PlaySfx("Click");
}
}
private void DisplayGuide()
{
imageDisplay.sprite = imageList[currentIndex];
textDisplay.text = textList[currentIndex];
indexDisplay.text = "(" + (currentIndex + 1) + " / " + imageList.Length + " )";
}
public void Close()
{
AudioManager.Instance.PlaySfx("Click");
Hide();
}
}

View File

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

View File

@ -0,0 +1,24 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class GuideUI : UIManager
{
[SerializeField] private TextMeshProUGUI guideText;
public void Show(string theText)
{
base.Show();
guideText.text = theText;
guideText.transform.localScale = new Vector3(1, 1, 1);
LeanTween.scale(guideText.gameObject, new Vector3(1.25f, 1.25f, 1.25f), 1).setLoopPingPong();
}
public override void Hide()
{
base.Hide();
LeanTween.cancel(guideText.gameObject);
}
}

View File

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

View File

@ -0,0 +1,8 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MainMenuUI : UIManager
{
}

View File

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

View File

@ -0,0 +1,8 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PauseUI : UIManager
{
}

View File

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

View File

@ -0,0 +1,31 @@
using UnityEngine;
using TMPro;
using System.Collections.Generic;
using System.Collections;
using UnityEngine.UI;
public class SalahDisplay : UIManager
{
[SerializeField] private TextMeshProUGUI salahText;
[SerializeField] private Image mascotImage;
[SerializeField] private Image thumbsImage;
[SerializeField] private List<string> variasiText = new List<string>();
public void Display()
{
Show();
salahText.text = "Kamu Salah";
LeanTween.scale(salahText.gameObject, new Vector3(1.5f, 1.5f, 1.5f), 0.25f).setEaseInOutCubic();
LeanTween.scale(salahText.gameObject, new Vector3(1, 1, 1), 0.5f).setDelay(0.2f).setEaseInOutCubic();
LeanTween.rotate(thumbsImage.gameObject, new Vector3(0, 0, -30), 0.25f).setEaseInOutCubic();
LeanTween.rotate(thumbsImage.gameObject, new Vector3(0, 0, 0), 0.25f).setDelay(0.2f).setEaseInOutCubic();
StartCoroutine(SalahDelay());
}
private IEnumerator SalahDelay()
{
yield return new WaitForSeconds(1f);
LeanTween.scale(salahText.gameObject, new Vector3(1.5f, 1.5f, 1.5f), 0.25f).setEaseInOutCubic();
LeanTween.scale(salahText.gameObject, new Vector3(1, 1, 1), 0.5f).setDelay(0.2f).setEaseInOutCubic();
LeanTween.rotate(thumbsImage.gameObject, new Vector3(0, 0, -30), 0.25f).setEaseInOutCubic();
LeanTween.rotate(thumbsImage.gameObject, new Vector3(0, 0, 0), 0.25f).setDelay(0.2f).setEaseInOutCubic();
salahText.text = variasiText[Random.Range(0, variasiText.Count)];
}
}

View File

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

View File

@ -0,0 +1,32 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class SameDotsBenarDisplay : UIManager
{
[SerializeField] private TextMeshProUGUI salahText;
[SerializeField] private Image mascotImage;
[SerializeField] private Image thumbsImage;
//[SerializeField] private List<string> variasiText = new List<string>();
public void Display()
{
Show();
//salahText.text = "Kamu Salah";
//LeanTween.scale(salahText.gameObject, new Vector3(1.5f, 1.5f, 1.5f), 0.25f).setEaseInOutCubic();
//LeanTween.scale(salahText.gameObject, new Vector3(1, 1, 1), 0.5f).setDelay(0.2f).setEaseInOutCubic();
LeanTween.rotate(thumbsImage.gameObject, new Vector3(0, 0, -30), 0.25f).setEaseInOutCubic();
LeanTween.rotate(thumbsImage.gameObject, new Vector3(0, 0, 0), 0.25f).setDelay(0.2f).setEaseInOutCubic();
StartCoroutine(SalahDelay());
}
private IEnumerator SalahDelay()
{
yield return new WaitForSeconds(1f);
//LeanTween.scale(salahText.gameObject, new Vector3(1.5f, 1.5f, 1.5f), 0.25f).setEaseInOutCubic();
//LeanTween.scale(salahText.gameObject, new Vector3(1, 1, 1), 0.5f).setDelay(0.2f).setEaseInOutCubic();
LeanTween.rotate(thumbsImage.gameObject, new Vector3(0, 0, -30), 0.25f).setEaseInOutCubic();
LeanTween.rotate(thumbsImage.gameObject, new Vector3(0, 0, 0), 0.25f).setDelay(0.2f).setEaseInOutCubic();
// salahText.text = variasiText[Random.Range(0, variasiText.Count)];
}
}

View File

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

View File

@ -0,0 +1,64 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class SummaryDisplay : UIManager
{
[SerializeField] private Transform parent;
[SerializeField] private DetailDataDisplay detailDataDisplayPrefab;
[SerializeField] private AverageDataDisplay averageDataDisplayPrefab;
[SerializeField] private TextMeshProUGUI showText;
[SerializeField] private bool isShowingAverage;
public override void Show()
{
base.Show();
isShowingAverage = true;
ShowAverage();
}
public void ToggleShow()
{
if (isShowingAverage)
{
isShowingAverage = false;
ShowDetail();
showText.text = "Tampilkan Rata-Rata";
}
else {
isShowingAverage = true;
ShowAverage();
showText.text = "Tampilkan Detail";
}
}
private void ShowAverage()
{
foreach (Transform t in parent)
{
Destroy(t.gameObject);
}
List<Answer> answers = GameManager.Instance.GetAnswers();
AverageDataDisplay Protan = Instantiate(averageDataDisplayPrefab, parent);
Protan.SetData(answers, Level.Protan);
AverageDataDisplay Deutan = Instantiate(averageDataDisplayPrefab, parent);
Deutan.SetData(answers, Level.Deutan);
AverageDataDisplay Tritan = Instantiate(averageDataDisplayPrefab, parent);
Tritan.SetData(answers, Level.Tritan);
}
private void ShowDetail()
{
foreach (Transform t in parent)
{
Destroy(t.gameObject);
}
List<Answer> answers = GameManager.Instance.GetAnswers();
for (int i = 0; i < answers.Count; i++)
{
DetailDataDisplay p = Instantiate(detailDataDisplayPrefab, parent);
p.SetData(answers[i]);
}
}
}

View File

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

View File

@ -0,0 +1,16 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UIManager : MonoBehaviour
{
[SerializeField] private Canvas canvas;
public virtual void Show()
{
canvas.enabled = true;
}
public virtual void Hide()
{
canvas.enabled = false;
}
}

View File

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

View File

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

View File

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

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 95ddab96f6582a14e848cf1514c6bebf
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 084e8ca47964c4d4ea0da489013a96f4
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

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

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 09e9cead3c7f6f34f8bf881479564168
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 1841406ddd7bb9f4696888ccf97afecb
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 03f5b17d552252d4085da3d61c2df494
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More