Compare commits

...

4 Commits

Author SHA1 Message Date
Mahamfatimaee 414a75d005 Merge branch 'dev-maham' into TestMerge 1 month ago
Mahamfatimaee 737b50ba25 Squashed commit of the following:
commit 761fe0f0e3
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Thu Oct 17 17:30:04 2024 +0500

    Fixed some spash issues

commit a29c5d792e
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Thu Oct 17 16:57:44 2024 +0500

    Fixed Splash issue

commit 4000ab2511
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Thu Oct 17 16:00:08 2024 +0500

    fixed spalsh issue

commit df377a6825
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Thu Oct 17 00:59:51 2024 +0500

    Reapply "Fixed Splash Animation"

    This reverts commit b13733598e.

commit b13733598e
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Thu Oct 17 00:39:51 2024 +0500

    Revert "Fixed Splash Animation"

    This reverts commit 7ca6548075.

commit 7ca6548075
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Wed Oct 16 17:19:40 2024 +0500

    Fixed Splash Animation

commit ec93b63073
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Wed Oct 16 16:52:15 2024 +0500

    Added New Pipes

commit 47925d7b4d
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Tue Oct 15 18:08:10 2024 +0500

    Some indentation

commit 0c342ac10c
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Tue Oct 15 18:07:14 2024 +0500

    Increased Level Cell Size

commit f3a7e3ed5a
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Tue Oct 15 18:02:58 2024 +0500

    Revert "Increased Cell size"

    This reverts commit 6e4c1672ba.

commit 6e4c1672ba
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Tue Oct 15 17:48:28 2024 +0500

    Increased Cell size

commit dce666657f
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Tue Oct 15 17:36:13 2024 +0500

    Added Ranked Up Screen

commit d488331478
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Tue Oct 15 14:13:54 2024 +0500

    Added new Level Complete Screen

commit 1ef6d7cf34
Author: TG9six <totalgamer.tg.x@gmail.com>
Date:   Mon Oct 14 12:04:04 2024 +0400

    UI improved

    Level selection change
    anchoring improved

commit ea8f9899e8
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Fri Oct 11 21:05:40 2024 +0500

    All UI Done

commit d656fb09a6
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Fri Oct 11 19:15:22 2024 +0500

    Added Level Screen

commit f131e38a6b
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Fri Oct 11 17:13:26 2024 +0500

    Gameplay UI Done

commit a695895c90
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Fri Oct 11 16:36:09 2024 +0500

    Added all gameplay UI

commit ab259bf005
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Fri Oct 11 11:21:47 2024 +0500

    Added Level Type Selection Screen

commit 8cebd78cfe
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Thu Oct 10 21:33:27 2024 +0500

    Added RateUs

commit 901e44afaf
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Thu Oct 10 20:56:50 2024 +0500

    Before addiung unity figma bridge

commit bdc01bcb18
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Thu Oct 10 19:36:39 2024 +0500

    Added Settings menu

commit 85b5348205
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Wed Oct 9 19:13:39 2024 +0500

    Added Main Menu Screen

commit a80c82c82f
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Wed Oct 9 17:26:31 2024 +0500

    Added new main menu UI

commit 833a599da1
Author: Hazim Bin Ijaz <hazimijaz_gamedev@rizzestudios.com>
Date:   Wed Oct 9 13:22:52 2024 +0500

    Added MainMenu Animation
1 month ago
Mahamfatimaee 56c150b0b7 change the names 1 month ago
Mahamfatimaee 273d383c45 Added 4 new achievements 1 month ago

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

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

@ -0,0 +1,221 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1107 &-8515502852573860788
AnimatorStateMachine:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: New Layer
m_ChildStates: []
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 0}
--- !u!1102 &-6024793714723776394
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ScaleDownRemove
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: b8f892a9acfa3dd4abcc3822677f30fc, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-3398981520297007735
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Wait
m_Speed: 20000
m_CycleOffset: 0
m_Transitions:
- {fileID: -1089769901319746500}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 0}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &-1089769901319746500
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: ScaleDown
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -6024793714723776394}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: AchievementScale
serializedVersion: 5
m_AnimatorParameters:
- m_Name: ScaleDown
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 7328654614666641954}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1109 &3267490031595275040
AnimatorTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -6024793714723776394}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 1
--- !u!1102 &6286268484249351856
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 3
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ScaleDownRemove 0
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: b8f892a9acfa3dd4abcc3822677f30fc, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &6367317772926085654
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: New State
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 0}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1107 &7328654614666641954
AnimatorStateMachine:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -3398981520297007735}
m_Position: {x: 240, y: 110, z: 0}
- serializedVersion: 1
m_State: {fileID: -6024793714723776394}
m_Position: {x: 240, y: 190, z: 0}
- serializedVersion: 1
m_State: {fileID: 6286268484249351856}
m_Position: {x: 0, y: 0, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -3398981520297007735}

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

@ -0,0 +1,205 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ScaleDownRemove
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 1, y: 1, z: 1}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.16666667
value: {x: 0, y: 0, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.33333334
value: {x: 0, y: 0, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 3
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.33333334
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.33333334
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.33333334
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.y
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.33333334
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.z
path:
classID: 224
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

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

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

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

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

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

@ -0,0 +1,269 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using CustomEditorTools;
[CustomEditor(typeof(AchievementManager))]
public class AchievementManagerEditor : Editor
{
AchievementManager MyTarget; //Reference to selected object
int SelectedTab; //Tab that is currently active
#region Styles
GUIStyle ManageBackground = new GUIStyle();
GUIStyle Border = new GUIStyle();
GUIStyle ManageInsideBackground = new GUIStyle();
GUIStyle RowButton = new GUIStyle();
GUIStyle ProgressBar = new GUIStyle();
#endregion
List<bool> Hidden = new List<bool>(); //If each achievement in the list is hidden
bool HideAll = true; //Button click to hide or show all
void OnApplicationQuit()
{
//MyTarget.LoadAchievementState();
}
void Awake()
{
MyTarget = (AchievementManager) target;
MyTarget.LoadAchievementState();
for (int i = 0; i < MyTarget.AchievementList.Count; i ++)
{
Hidden.Add(false);
}
bool LightMode = !EditorGUIUtility.isProSkin;
#region Editor Styles
ManageBackground.normal.background = CET.MakeEditorBackgroundColor(LightMode ?
new Color(0.805f, 0.805f, 0.813f) :
new Color(0.4f, 0.4f, 0.4f)
);
ManageBackground.padding = new RectOffset(5, 5, 5, 5);
ManageInsideBackground.normal.background = CET.MakeEditorBackgroundColor(LightMode ?
new Color(0.629f, 0.629f, 0.629f) :
new Color(0.5f, 0.5f, 0.5f)
);
ManageInsideBackground.padding = new RectOffset(0, 0, 5, 5);
RowButton.padding = new RectOffset();
RowButton.fixedHeight = 20;
RowButton.fixedWidth = 20;
RowButton.margin = new RectOffset(0, 5, 0, 0);
ProgressBar.normal.background = CET.MakeEditorBackgroundColor(Color.blue);
ProgressBar.margin = new RectOffset(0, 5, 0, 0);
Border.normal.background = CET.MakeEditorBackgroundColor(new Color(0.2f, 0.2f, 0.2f));
Border.padding = new RectOffset(3, 3, 3, 3);
Border.margin = new RectOffset(0, 0, 0, 10);
#endregion
}
public override void OnInspectorGUI()
{
serializedObject.Update();
GUILayout.Space(10);
SelectedTab = GUILayout.Toolbar(SelectedTab, new string[] { "Settings", "Achievement List" });
GUILayout.Space(10);
switch (SelectedTab)
{
case 0:
DrawSettings();
break;
case 1:
DrawAchievementList();
break;
}
serializedObject.ApplyModifiedProperties();
}
public void DrawAchievementList ()
{
if (GUILayout.Button(HideAll ? "Show All" : "Hide All", GUILayout.Width(70)))
{
for(int i = 0; i < Hidden.Count; i++)
{
Hidden[i] = HideAll;
}
HideAll = !HideAll;
}
for (int i = 0; i < MyTarget.AchievementList.Count; i++)
{
DrawAchievement(serializedObject.FindProperty("AchievementList").GetArrayElementAtIndex(i), i);
}
GUILayout.Space(10);
if (GUILayout.Button("Add"))
{
MyTarget.AchievementList.Add(new AchievementInfromation());
MyTarget.States.Add(new AchievementState());
MyTarget.SaveAchievementState();
Hidden.Add(false);
}
CET.HorizontalLine();
EditorGUILayout.PropertyField(serializedObject.FindProperty("UseFinalAchievement"));
GUILayout.Label("Define an achievement which will be unlocked once all other have been completed");
if (MyTarget.UseFinalAchievement)
{
EditorGUILayout.PropertyField(serializedObject.FindProperty("FinalAchievementKey"));
}
CET.HorizontalLine();
}
public void DrawAchievement(SerializedProperty Achievement, int Index)
{
GUILayout.BeginVertical(Border);
GUILayout.BeginVertical(ManageBackground);
GUILayout.BeginHorizontal(ManageInsideBackground);
int i = (int)Index;
if (GUILayout.Button(Resources.Load<Texture2D>(Hidden[i] ? "Plus" : "Minus"), RowButton))
{
Hidden[i] = !Hidden[i];
}
if (MyTarget.UseFinalAchievement && MyTarget.FinalAchievementKey.Equals(MyTarget.AchievementList[i].Key))
{
GUILayout.Box(Resources.Load<Texture2D>("CompleteAllIcon"), RowButton);
}
GUILayout.Label("(" + i + ") " + MyTarget.AchievementList[i].DisplayName);
if (i > 0 && GUILayout.Button(Resources.Load<Texture2D>("Up"), RowButton))
{
AchievementInfromation temp = MyTarget.AchievementList[i];
MyTarget.AchievementList[i] = MyTarget.AchievementList[i - 1];
MyTarget.AchievementList[i - 1] = temp;
AchievementState temp2 = MyTarget.States[i];
MyTarget.States[i] = MyTarget.States[i - 1];
MyTarget.States[i - 1] = temp2;
MyTarget.SaveAchievementState();
}
if (i < MyTarget.AchievementList.Count - 1 && GUILayout.Button(Resources.Load<Texture2D>("Down"), RowButton))
{
AchievementInfromation temp = MyTarget.AchievementList[i];
MyTarget.AchievementList[i] = MyTarget.AchievementList[i + 1];
MyTarget.AchievementList[i + 1] = temp;
AchievementState temp2 = MyTarget.States[i];
MyTarget.States[i] = MyTarget.States[i + 1];
MyTarget.States[i + 1] = temp2;
MyTarget.SaveAchievementState();
}
if (GUILayout.Button(Resources.Load<Texture2D>("Cross"), RowButton))
{
MyTarget.AchievementList.RemoveAt(i);
Hidden.RemoveAt(i);
MyTarget.States.RemoveAt(i);
MyTarget.SaveAchievementState();
Repaint();
return;
}
GUILayout.EndHorizontal();
if (Hidden[i])
{
GUILayout.Space(10);
EditorGUILayout.PropertyField(Achievement.FindPropertyRelative("Key"));
EditorGUILayout.PropertyField(Achievement.FindPropertyRelative("DisplayName"));
EditorGUILayout.PropertyField(Achievement.FindPropertyRelative("Description"));
GUILayout.Space(10);
EditorGUILayout.PropertyField(Achievement.FindPropertyRelative("LockedIcon"));
EditorGUILayout.PropertyField(Achievement.FindPropertyRelative("LockOverlay"));
GUILayout.Space(5);
EditorGUILayout.PropertyField(Achievement.FindPropertyRelative("AchievedIcon"));
GUILayout.Space(10);
EditorGUILayout.PropertyField(Achievement.FindPropertyRelative("Spoiler"));
EditorGUILayout.PropertyField(Achievement.FindPropertyRelative("Progression"));
if (Achievement.FindPropertyRelative("Progression").boolValue)
{
EditorGUILayout.PropertyField(Achievement.FindPropertyRelative("ProgressGoal"));
EditorGUILayout.PropertyField(Achievement.FindPropertyRelative("NotificationFrequency"));
EditorGUILayout.PropertyField(Achievement.FindPropertyRelative("ProgressSuffix"));
}
}
GUILayout.EndVertical();
GUILayout.EndVertical();
}
public void DrawSettings()
{
EditorGUILayout.PropertyField(serializedObject.FindProperty("DisplayTime"));
EditorGUILayout.PropertyField(serializedObject.FindProperty("NumberOnScreen"));
EditorGUILayout.PropertyField(serializedObject.FindProperty("DisplayAchievements"));
EditorGUILayout.PropertyField(serializedObject.FindProperty("SpoilerAchievementMessage"));
if (MyTarget.DisplayAchievements)
{
EditorGUILayout.PropertyField(serializedObject.FindProperty("StackLocation"));
}
EditorGUILayout.PropertyField(serializedObject.FindProperty("ShowExactProgress"));
EditorGUILayout.PropertyField(serializedObject.FindProperty("AutoSave"));
EditorGUILayout.PropertyField(serializedObject.FindProperty("ProgressMadeSound"));
EditorGUILayout.PropertyField(serializedObject.FindProperty("AchievedSound"));
CET.HorizontalLine();
GUILayout.BeginVertical(ManageBackground);
for (int i = 0; i < MyTarget.AchievementList.Count; i++)
{
Rect ProgressBarRect;
Rect r = EditorGUILayout.BeginHorizontal(ManageInsideBackground);
GUILayout.Label("[" + i + "] " + MyTarget.AchievementList[i].DisplayName + " (" + MyTarget.AchievementList[i].Key + ")", GUILayout.Width(250));
if (MyTarget.AchievementList[i].Progression)
{
float Progress = MyTarget.States[i].Progress / MyTarget.AchievementList[i].ProgressGoal;
ProgressBarRect = EditorGUILayout.BeginHorizontal(ProgressBar, GUILayout.ExpandWidth(true));
GUILayout.Label("");
EditorGUILayout.EndHorizontal();
EditorGUI.ProgressBar(ProgressBarRect, Progress, "" + MyTarget.States[i].Progress + " / " + MyTarget.AchievementList[i].ProgressGoal + " (" + (Progress * 100) + "%)");
}
else
{
GUILayout.Label(MyTarget.States[i].Achieved ? "True" : "False");
}
if (MyTarget.UseFinalAchievement && MyTarget.FinalAchievementKey.Equals(MyTarget.AchievementList[i].Key))
{
GUILayout.Box(Resources.Load<Texture2D>("CompleteAllIcon"), RowButton);
}
EditorGUILayout.EndHorizontal();
GUILayout.Space(2);
}
GUILayout.EndVertical();
CET.HorizontalLine();
GUILayout.BeginHorizontal();
if (GUILayout.Button("Manual Save"))
{
MyTarget.SaveAchievementState();
}
if (GUILayout.Button("Reset All States"))
{
if(EditorUtility.DisplayDialog("Reset Confirmation", "Are you sure you want to reset all achevement states?", "Reset", "Cancel"))
{
MyTarget.ResetAchievementState();
}
}
GUILayout.EndHorizontal();
CET.HorizontalLine();
}
}

@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: edacd578eb8b24b4a82525a3e3427b2a
timeCreated: 1539679771
licenseType: Store
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,41 @@
using UnityEngine;
using UnityEditor;
namespace CustomEditorTools
{
/// <summary>
/// A set of editor tools used to speed up custom editor creation
/// </summary>
static public class CET
{
/// <summary>
/// Creates a 1X1 Images with the input color. Use to color editor backgrounds
/// </summary>
/// <param name="Color">Color of background image</param>
static public Texture2D MakeEditorBackgroundColor (Color Color)
{
Texture2D t = new Texture2D(1, 1);
t.SetPixel(0, 0, Color);
t.Apply();
return t;
}
/// <summary>
/// Loads a images as a Texture2D
/// </summary>
/// <param name="Path">Path of image file e.g. Asset\Folder1\Folder2\file.png</param>
/// <returns></returns>
static public Texture2D LoadImageFromFile (string Path)
{
return (Texture2D)AssetDatabase.LoadAssetAtPath(Path, typeof(Texture2D));
}
/// <summary>
/// Draw a simple dividing line on an custom editor
/// </summary>
static public void HorizontalLine ()
{
EditorGUILayout.LabelField("", GUI.skin.horizontalSlider);
}
}
}

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

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

@ -0,0 +1,90 @@
fileFormatVersion: 2
guid: b35215edbf2534b4b8e6f04125b91f13
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 10
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- serializedVersion: 2
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

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

@ -0,0 +1,26 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// Example Code Only
/// </summary>
public class ExampleScript : MonoBehaviour
{
public void Add1 (string Name)
{
AchievementManager.instance.AddAchievementProgress(Name, 1);
}
public void Add5(string Name)
{
AchievementManager.instance.AddAchievementProgress(Name, 5);
}
public void Add10(string Name)
{
AchievementManager.instance.AddAchievementProgress(Name, 10);
}
public void Add100(string Name)
{
AchievementManager.instance.AddAchievementProgress(Name, 100);
}
}

@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 916b1337edbece241b6b7f158bd1bff3
timeCreated: 1538721030
licenseType: Store
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

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

File diff suppressed because it is too large Load Diff

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 52f308551e6b1a347a3a0d7de8089fa2
timeCreated: 1538562293
licenseType: Store
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

@ -0,0 +1,103 @@
fileFormatVersion: 2
guid: 28906be28f657f54aa031e4f55f6221d
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 10
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: 1
wrapV: 1
wrapW: -1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

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

@ -0,0 +1,303 @@
using System.Collections.Generic;
using UnityEngine;
using System;
using System.Linq;
/// <summary>
/// Controls interactions with the Achievement System
/// </summary>
[System.Serializable]
public class AchievementManager : MonoBehaviour
{
[Tooltip("The number of seconds an achievement will stay on the screen after being unlocked or progress is made.")]
public float DisplayTime = 3;
[Tooltip("The total number of achievements which can be on the screen at any one time.")]
public int NumberOnScreen = 3;
[Tooltip("If true, progress notifications will display their exact progress. If false it will show the closest bracket.")]
public bool ShowExactProgress = false;
[Tooltip("If true, achievement unlocks/progress update notifications will be displayed on the player's screen.")]
public bool DisplayAchievements;
[Tooltip("The location on the screen where achievement notifications should be displayed.")]
public AchievementStackLocation StackLocation;
[Tooltip("If true, the state of all achievements will be saved without any call to the manual save function (Recommended = true)")]
public bool AutoSave;
[Tooltip("The message which will be displayed on the UI if an achievement is marked as a spoiler.")]
public string SpoilerAchievementMessage = "Hidden";
[Tooltip("The sound which plays when an achievement is unlocked is displayed to a user. Sounds are only played when Display Achievements is true.")]
public AudioClip AchievedSound;
[Tooltip("The sound which plays when a progress update is displayed to a user. Sounds are only played when Display Achievements is true.")]
public AudioClip ProgressMadeSound;
private AudioSource AudioSource;
[SerializeField] public List<AchievementState> States = new List<AchievementState>(); //List of achievement states (achieved, progress and last notification)
[SerializeField] public List<AchievementInfromation> AchievementList = new List<AchievementInfromation>(); //List of all available achievements
[Tooltip("If true, one achievement will be automatically unlocked once all others have been completed")]
public bool UseFinalAchievement = false;
[Tooltip("The key of the final achievement")]
public string FinalAchievementKey;
public static AchievementManager instance = null; //Singleton Instance
public AchievenmentStack Stack;
void Awake()
{
if (instance == null)
{
instance = this;
}
else if (instance != this)
{
Destroy(gameObject);
}
DontDestroyOnLoad(gameObject);
AudioSource = gameObject.GetComponent<AudioSource>();
Stack = GetComponentInChildren<AchievenmentStack>();
LoadAchievementState();
}
private void PlaySound (AudioClip Sound)
{
if(AudioSource != null)
{
AudioSource.clip = Sound;
AudioSource.Play();
}
}
# region Miscellaneous
/// <summary>
/// Does an achievement exist in the list
/// </summary>
/// <param name="Key">The Key of the achievement to test</param>
/// <returns>true : if exists. false : does not exist</returns>
public bool AchievementExists(string Key)
{
return AchievementExists(AchievementList.FindIndex(x => x.Key.Equals(Key)));
}
/// <summary>
/// Does an achievement exist in the list
/// </summary>
/// <param name="Index">The index of the achievement to test</param>
/// <returns>true : if exists. false : does not exist</returns>
public bool AchievementExists(int Index)
{
return Index <= AchievementList.Count && Index >= 0;
}
/// <summary>
/// Returns the total number of achievements which have been unlocked.
/// </summary>
public int GetAchievedCount()
{
int Count = (from AchievementState i in States
where i.Achieved == true
select i).Count();
return Count;
}
/// <summary>
/// Returns the current percentage of unlocked achievements.
/// </summary>
public float GetAchievedPercentage()
{
if(States.Count == 0)
{
return 0;
}
return (float)GetAchievedCount() / States.Count * 100;
}
#endregion
#region Unlock and Progress
/// <summary>
/// Fully unlocks a progression or goal achievement.
/// </summary>
/// <param name="Key">The Key of the achievement to be unlocked</param>
public void Unlock(string Key)
{
Unlock(FindAchievementIndex(Key));
}
/// <summary>
/// Fully unlocks a progression or goal achievement.
/// </summary>
/// <param name="Index">The index of the achievement to be unlocked</param>
public void Unlock(int Index)
{
if (!States[Index].Achieved)
{
States[Index].Progress = AchievementList[Index].ProgressGoal;
States[Index].Achieved = true;
DisplayUnlock(Index);
AutoSaveStates();
if(UseFinalAchievement)
{
int Find = States.FindIndex(x => !x.Achieved);
bool CompletedAll = (Find == -1 || AchievementList[Find].Key.Equals(FinalAchievementKey));
if (CompletedAll)
{
Unlock(FinalAchievementKey);
}
}
}
}
/// <summary>
/// Set the progress of an achievement to a specific value.
/// </summary>
/// <param name="Key">The Key of the achievement</param>
/// <param name="Progress">Set progress to this value</param>
public void SetAchievementProgress(string Key, float Progress)
{
SetAchievementProgress(FindAchievementIndex(Key), Progress);
}
/// <summary>
/// Set the progress of an achievement to a specific value.
/// </summary>
/// <param name="Index">The index of the achievement</param>
/// <param name="Progress">Set progress to this value</param>
public void SetAchievementProgress(int Index, float Progress)
{
if(AchievementList[Index].Progression)
{
if (States[Index].Progress >= AchievementList[Index].ProgressGoal)
{
Unlock(Index);
}
else
{
States[Index].Progress = Progress;
DisplayUnlock(Index);
AutoSaveStates();
}
}
}
/// <summary>
/// Adds the input amount of progress to an achievement. Clamps achievement progress to its max value.
/// </summary>
/// <param name="Key">The Key of the achievement</param>
/// <param name="Progress">Add this number to progress</param>
public void AddAchievementProgress(string Key, float Progress)
{
AddAchievementProgress(FindAchievementIndex(Key), Progress);
}
/// <summary>
/// Adds the input amount of progress to an achievement. Clamps achievement progress to its max value.
/// </summary>
/// <param name="Index">The index of the achievement</param>
/// <param name="Progress">Add this number to progress</param>
public void AddAchievementProgress(int Index, float Progress)
{
if (AchievementList[Index].Progression)
{
if (States[Index].Progress + Progress >= AchievementList[Index].ProgressGoal)
{
Unlock(Index);
}
else
{
States[Index].Progress += Progress;
DisplayUnlock(Index);
AutoSaveStates();
}
}
}
#endregion
#region Saving and Loading
/// <summary>
/// Saves progress and achieved states to player prefs. Used to allow reload of data between game loads. This function is automatically called if the Auto Save setting is set to true.
/// </summary>
public void SaveAchievementState()
{
for (int i = 0; i < States.Count; i++)
{
PlayerPrefs.SetString("AchievementState_" + i, JsonUtility.ToJson(States[i]));
}
PlayerPrefs.Save();
}
/// <summary>
/// Loads all progress and achievement states from player prefs. This function is automatically called if the Auto Load setting is set to true.
/// </summary>
public void LoadAchievementState()
{
AchievementState NewState;
States.Clear();
for (int i = 0; i < AchievementList.Count; i++)
{
//Ensure that new project get default values
if (PlayerPrefs.HasKey("AchievementState_" + i))
{
NewState = JsonUtility.FromJson<AchievementState>(PlayerPrefs.GetString("AchievementState_" + i));
States.Add(NewState);
}
else { States.Add(new AchievementState()); }
}
}
/// <summary>
/// Clears all saved progress and achieved states.
/// </summary>
public void ResetAchievementState()
{
States.Clear();
for (int i = 0; i < AchievementList.Count; i++)
{
PlayerPrefs.DeleteKey("AchievementState_" + i);
States.Add(new AchievementState());
}
SaveAchievementState();
}
#endregion
/// <summary>
/// Find the index of an achievement with a cetain key
/// </summary>
/// <param name="Key">Key of achievevment</param>
private int FindAchievementIndex(string Key)
{
return AchievementList.FindIndex(x => x.Key.Equals(Key));
}
/// <summary>
/// Test if AutoSave is valid. If true, save list
/// </summary>
private void AutoSaveStates()
{
if (AutoSave)
{
SaveAchievementState();
}
}
/// <summary>
/// Display achievements progress to screen
/// </summary>
/// <param name="Index">Index of achievement to display</param>
private void DisplayUnlock(int Index)
{
if (DisplayAchievements && !AchievementList[Index].Spoiler || States[Index].Achieved)
{
//If not achieved
if (AchievementList[Index].Progression && States[Index].Progress < AchievementList[Index].ProgressGoal)
{
int Steps = (int)AchievementList[Index].ProgressGoal / (int)AchievementList[Index].NotificationFrequency;
//Loop through all notification point backwards from last possible option
for (int i = Steps; i > States[Index].LastProgressUpdate; i--)
{
//When it finds the largest valid notification point
if (States[Index].Progress >= AchievementList[Index].NotificationFrequency * i)
{
PlaySound(ProgressMadeSound);
States[Index].LastProgressUpdate = i;
Stack.ScheduleAchievementDisplay(Index);
return;
}
}
}
else
{
PlaySound(AchievedSound);
Stack.ScheduleAchievementDisplay(Index);
}
}
}
}

@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 23953d3cc6573c745b3dc7bc5720c369
timeCreated: 1538435283
licenseType: Store
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,98 @@
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// Add list of achievements to screen
/// </summary>
public class AchievenmentListIngame : MonoBehaviour
{
[HideInInspector] public GameObject scrollContent;
[HideInInspector] public GameObject prefab;
[HideInInspector] public GameObject Menu;
[HideInInspector] public Dropdown Filter;
[HideInInspector] public Text CountText;
[HideInInspector] public Text CompleteText;
[HideInInspector] public Scrollbar Scrollbar;
private bool MenuOpen = false;
[Tooltip("Key used to open UI menu. Set to \"None\" to prevent menu from opening with any key press")]
public KeyCode OpenMenuKey; //Key to open in-game menu
/// <summary>
/// Adds all achievements to the UI based on a filter
/// </summary>
/// <param name="Filter">Filter to use (All, Achieved or Unachieved)</param>
private void AddAchievements(string Filter)
{
foreach (Transform child in scrollContent.transform)
{
Destroy(child.gameObject);
}
AchievementManager AM = AchievementManager.instance;
int AchievedCount = AM.GetAchievedCount();
CountText.text = "" + AchievedCount + " / " + AM.States.Count;
CompleteText.text = "Complete (" + AM.GetAchievedPercentage() + "%)";
for (int i = 0; i < AM.AchievementList.Count; i ++)
{
if((Filter.Equals("All")) || (Filter.Equals("Achieved") && AM.States[i].Achieved) || (Filter.Equals("Unachieved") && !AM.States[i].Achieved))
{
AddAchievementToUI(AM.AchievementList[i], AM.States[i]);
}
}
Scrollbar.value = 2;
}
public void AddAchievementToUI(AchievementInfromation Achievement, AchievementState State)
{
UIAchievement UIAchievement = Instantiate(prefab, new Vector3(0f, 0f, 0f), Quaternion.identity).GetComponent<UIAchievement>();
UIAchievement.Set(Achievement, State);
UIAchievement.transform.SetParent(scrollContent.transform);
}
/// <summary>
/// Filter out a set of locked or unlocked achievements
/// </summary>
public void ChangeFilter ()
{
AddAchievements(Filter.options[Filter.value].text);
}
/// <summary>
/// Closes the UI window.
/// </summary>
public void CloseWindow()
{
MenuOpen = false;
Menu.SetActive(MenuOpen);
}
/// <summary>
/// Opens the UI window.
/// </summary>
public void OpenWindow()
{
MenuOpen = true;
Menu.SetActive(MenuOpen);
AddAchievements("All");
}
/// <summary>
/// Toggles the state of the UI window open or closed
/// </summary>
public void ToggleWindow()
{
if (MenuOpen){
CloseWindow();
}
else{
OpenWindow();
}
}
private void Update()
{
if(Input.GetKeyDown(OpenMenuKey))
{
ToggleWindow();
}
}
}

@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 4649ecec4d59d264faf94e9ac18561b6
timeCreated: 1565680274
licenseType: Store
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,62 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// Controls the display of achievements on the screen
/// </summary>
public class AchievenmentStack : MonoBehaviour
{
public RectTransform[] StackPanels;
public List<UIAchievement> BackLog = new List<UIAchievement>();
public GameObject AchievementTemplate;
private AchievementManager AM;
private void Start()
{
AM = AchievementManager.instance;
}
/// <summary>
/// Add an achievement to screen if it fits, otherwise, add to the backlog list
/// </summary>
/// <param name="Index">Index of achievement to add</param>
public void ScheduleAchievementDisplay (int Index)
{
var Spawned = Instantiate(AchievementTemplate).GetComponent<UIAchievement>();
Spawned.AS = this;
Spawned.Set(AM.AchievementList[Index], AM.States[Index]);
//If there is room on the screen
if (GetCurrentStack().childCount < AM.NumberOnScreen)
{
Spawned.transform.SetParent(GetCurrentStack(), false);
Spawned.StartDeathTimer();
}
else
{
Spawned.gameObject.SetActive(false);
BackLog.Add(Spawned);
}
}
/// <summary>
/// Find the box where achievements should be spawned
/// </summary>
public Transform GetCurrentStack () => StackPanels[(int)AM.StackLocation].transform;
/// <summary>
/// Add one achievement from the backlog to the screen
/// </summary>
public void CheckBackLog ()
{
if(BackLog.Count > 0)
{
BackLog[0].transform.SetParent(GetCurrentStack(), false);
BackLog[0].gameObject.SetActive(true);
BackLog[0].StartDeathTimer();
BackLog.RemoveAt(0);
}
}
}

@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 7cdc328a33300e34d9812896a5035b37
timeCreated: 1538562588
licenseType: Store
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,63 @@
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// Storesinformation related to a single achievement
/// </summary>
[System.Serializable]
public struct AchievementInfromation
{
[Tooltip("Name used to unlock/set achievement progress")]
[SerializeField] public string Key;
[Tooltip("The display name for an achievement. Shown to the user on the UI.")]
[SerializeField] public string DisplayName;
[Tooltip("Description for an achievement. Shown to the user on the UI.")]
[SerializeField] public string Description;
[Tooltip("The icon which will be displayed when the achievement is locked")]
[SerializeField] public Sprite LockedIcon;
[Tooltip("If true, the lock icon will be overlayed on top of the achieved version.")]
[SerializeField] public bool LockOverlay;
[Tooltip("The icon which will be displayed when the achievement is Achieved")]
[SerializeField] public Sprite AchievedIcon;
[Tooltip("Treat the achievement as a spoiler for the game. Hidden from player until unlocked.")]
[SerializeField] public bool Spoiler;
[Tooltip("If true, this achievement will count to a certain amount before unlocking. E.g. race a total of 500 km, collect 10 coins or reach a high score of 25.")]
[SerializeField] public bool Progression;
[Tooltip("The goal which must be reached for the achievement to unlock.")]
[SerializeField] public float ProgressGoal;
[Tooltip("The rate that progress updates will be displayed on the screen e.g. Progress goal = 100 and Notification Frequency = 25. In this example, the progress will be displayed at 25,50,75 and 100.")]
[SerializeField] public float NotificationFrequency;
[Tooltip("A string which will be displayed with a progress achievement e.g. $, KM, Miles etc")]
[SerializeField] public string ProgressSuffix;
public int AchievementIndex { get; internal set; }
}
/// <summary>
/// Stores the current progress and achieved state
/// </summary>
[System.Serializable]
public class AchievementState
{
public AchievementState(float NewProgress, bool NewAchieved)
{
Progress = NewProgress;
Achieved = NewAchieved;
}
public AchievementState() { }
[SerializeField] public float Progress; //Progress towards goal
[SerializeField] public int LastProgressUpdate = 0; //Last achievement notification bracket
[SerializeField] public bool Achieved = false; //Is the achievement unlocked
}
/// <summary>
/// Place where an achievement will be displayed on the screen
/// </summary>
public enum AchievementStackLocation
{
TopLeft,
TopRight,
BottomLeft,
BottomRight
}

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

@ -0,0 +1,83 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// Defines the logic behind a single achievement on the UI
/// </summary>
public class UIAchievement : MonoBehaviour
{
public Text Title, Description, Percent;
public Image Icon, OverlayIcon, ProgressBar;
public GameObject SpoilerOverlay;
public Text SpoilerText;
[HideInInspector]public AchievenmentStack AS;
/// <summary>
/// Destroy object after a certain amount of time
/// </summary>
public void StartDeathTimer ()
{
StartCoroutine(Wait());
}
/// <summary>
/// Add information about an Achievement to the UI elements
/// </summary>
public void Set (AchievementInfromation Information, AchievementState State)
{
if(Information.Spoiler && !State.Achieved)
{
SpoilerOverlay.SetActive(true);
SpoilerText.text = AchievementManager.instance.SpoilerAchievementMessage;
}
else
{
Title.text = Information.DisplayName;
Description.text = Information.Description;
if (Information.LockOverlay && !State.Achieved)
{
OverlayIcon.gameObject.SetActive(true);
OverlayIcon.sprite = Information.LockedIcon;
Icon.sprite = Information.AchievedIcon;
}
else
{
Icon.sprite = State.Achieved ? Information.AchievedIcon : Information.LockedIcon;
}
if (Information.Progression)
{
float CurrentProgress = AchievementManager.instance.ShowExactProgress ? State.Progress : (State.LastProgressUpdate * Information.NotificationFrequency);
float DisplayProgress = State.Achieved ? Information.ProgressGoal : CurrentProgress;
if (State.Achieved)
{
Percent.text = Information.ProgressGoal + Information.ProgressSuffix + " / " + Information.ProgressGoal + Information.ProgressSuffix + " (Achieved)";
}
else
{
Percent.text = DisplayProgress + Information.ProgressSuffix + " / " + Information.ProgressGoal + Information.ProgressSuffix;
}
ProgressBar.fillAmount = DisplayProgress / Information.ProgressGoal;
}
else //Single Time
{
ProgressBar.fillAmount = State.Achieved ? 1 : 0;
Percent.text = State.Achieved ? "(Achieved)" : "(Locked)";
}
}
}
private IEnumerator Wait ()
{
yield return new WaitForSeconds(AchievementManager.instance.DisplayTime);
GetComponent<Animator>().SetTrigger("ScaleDown");
yield return new WaitForSeconds(0.1f);
AS.CheckBackLog();
Destroy(gameObject);
}
}

@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: f6560818a46314e458030cadd68d4e5a
timeCreated: 1538732020
licenseType: Store
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

@ -15,7 +15,7 @@ GameObject:
- component: {fileID: 1790415148045804974} - component: {fileID: 1790415148045804974}
m_Layer: 5 m_Layer: 5
m_Name: PipeCell0 m_Name: PipeCell0
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
@ -156,7 +156,7 @@ GameObject:
- component: {fileID: 1790415148045804945} - component: {fileID: 1790415148045804945}
m_Layer: 5 m_Layer: 5
m_Name: PipeParent m_Name: PipeParent
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0

@ -11,7 +11,7 @@ GameObject:
- component: {fileID: 1790415148045804960} - component: {fileID: 1790415148045804960}
m_Layer: 5 m_Layer: 5
m_Name: PipeParent m_Name: PipeParent
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
@ -51,7 +51,7 @@ GameObject:
- component: {fileID: 1790415148045804984} - component: {fileID: 1790415148045804984}
m_Layer: 5 m_Layer: 5
m_Name: PipeCell1 m_Name: PipeCell1
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0

@ -188,7 +188,7 @@ GameObject:
- component: {fileID: 1790415148045804942} - component: {fileID: 1790415148045804942}
m_Layer: 5 m_Layer: 5
m_Name: PipeParent m_Name: PipeParent
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
@ -228,7 +228,7 @@ GameObject:
- component: {fileID: 1790415148045804976} - component: {fileID: 1790415148045804976}
m_Layer: 5 m_Layer: 5
m_Name: PipeCell2 m_Name: PipeCell2
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
@ -338,7 +338,7 @@ MonoBehaviour:
correctRotateDelta: 2 correctRotateDelta: 2
redundant: 0 redundant: 0
_rotationValue: 0 _rotationValue: 0
cellKind: 1 cellKind: 0
--- !u!114 &1790415148045804976 --- !u!114 &1790415148045804976
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

@ -211,7 +211,7 @@ GameObject:
- component: {fileID: 1790415148045804962} - component: {fileID: 1790415148045804962}
m_Layer: 5 m_Layer: 5
m_Name: PipeParent m_Name: PipeParent
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
@ -251,7 +251,7 @@ GameObject:
- component: {fileID: 1790415148045804995} - component: {fileID: 1790415148045804995}
m_Layer: 5 m_Layer: 5
m_Name: PipeCell3 m_Name: PipeCell3
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
@ -361,7 +361,7 @@ MonoBehaviour:
correctRotateDelta: 4 correctRotateDelta: 4
redundant: 0 redundant: 0
_rotationValue: 0 _rotationValue: 0
cellKind: 3 cellKind: 0
--- !u!114 &1790415148045804995 --- !u!114 &1790415148045804995
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

@ -15,7 +15,7 @@ GameObject:
- component: {fileID: 1790415148045804968} - component: {fileID: 1790415148045804968}
m_Layer: 5 m_Layer: 5
m_Name: PipeCell4 m_Name: PipeCell4
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
@ -125,7 +125,7 @@ MonoBehaviour:
correctRotateDelta: 4 correctRotateDelta: 4
redundant: 0 redundant: 0
_rotationValue: 0 _rotationValue: 0
cellKind: 2 cellKind: 0
--- !u!114 &1790415148045804968 --- !u!114 &1790415148045804968
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -258,7 +258,7 @@ GameObject:
- component: {fileID: 1790415148045804950} - component: {fileID: 1790415148045804950}
m_Layer: 5 m_Layer: 5
m_Name: PipeParent m_Name: PipeParent
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0

@ -169,7 +169,7 @@ GameObject:
- component: {fileID: 1790415148045804973} - component: {fileID: 1790415148045804973}
m_Layer: 5 m_Layer: 5
m_Name: PipeCell5 m_Name: PipeCell5
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
@ -296,7 +296,7 @@ MonoBehaviour:
correctRotateDelta: 2 correctRotateDelta: 2
redundant: 0 redundant: 0
_rotationValue: 0 _rotationValue: 0
cellKind: 5 cellKind: 0
--- !u!114 &1790415148045804973 --- !u!114 &1790415148045804973
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -352,7 +352,7 @@ GameObject:
- component: {fileID: 1790415148045804953} - component: {fileID: 1790415148045804953}
m_Layer: 5 m_Layer: 5
m_Name: PipeParent m_Name: PipeParent
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0

@ -88,7 +88,7 @@ GameObject:
- component: {fileID: 1790415148045804948} - component: {fileID: 1790415148045804948}
m_Layer: 5 m_Layer: 5
m_Name: PipeParent m_Name: PipeParent
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
@ -206,7 +206,7 @@ GameObject:
- component: {fileID: 1790415148045804979} - component: {fileID: 1790415148045804979}
m_Layer: 5 m_Layer: 5
m_Name: PipeCell6 m_Name: PipeCell6
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
@ -333,7 +333,7 @@ MonoBehaviour:
correctRotateDelta: 1 correctRotateDelta: 1
redundant: 0 redundant: 0
_rotationValue: 0 _rotationValue: 0
cellKind: 4 cellKind: 0
--- !u!114 &1790415148045804979 --- !u!114 &1790415148045804979
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

@ -176,7 +176,7 @@ GameObject:
- component: {fileID: 1790415148045804943} - component: {fileID: 1790415148045804943}
m_Layer: 5 m_Layer: 5
m_Name: PipeParent m_Name: PipeParent
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
@ -294,7 +294,7 @@ GameObject:
- component: {fileID: 1790415148045804991} - component: {fileID: 1790415148045804991}
m_Layer: 5 m_Layer: 5
m_Name: PipeCell7 m_Name: PipeCell7
m_TagString: m_TagString: f
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0

@ -0,0 +1,313 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1927895643555086930
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2774129595816172735}
- component: {fileID: 5747220029353983186}
m_Layer: 5
m_Name: Slider
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2774129595816172735
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1927895643555086930}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 3.027968, y: 4.352704, z: 3.027968}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6330597749771692761}
- {fileID: 3897611399735621207}
- {fileID: 1933877722026752020}
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: -86.599976, y: 380.5201}
m_SizeDelta: {x: 160, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &5747220029353983186
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1927895643555086930}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 0}
m_FillRect: {fileID: 8128445396463516101}
m_HandleRect: {fileID: 0}
m_Direction: 0
m_MinValue: 0
m_MaxValue: 10
m_WholeNumbers: 0
m_Value: 5
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
--- !u!1 &3157252535800401921
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3897611399735621207}
m_Layer: 5
m_Name: Fill Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3897611399735621207
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3157252535800401921}
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: 8128445396463516101}
m_Father: {fileID: 2774129595816172735}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 0.75}
m_AnchoredPosition: {x: -5, y: 0}
m_SizeDelta: {x: -20, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &4953687372900375909
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8128445396463516101}
- component: {fileID: 3214804828058033334}
- component: {fileID: 6197703238363308694}
m_Layer: 5
m_Name: Fill
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8128445396463516101
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4953687372900375909}
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: 3897611399735621207}
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: 10, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3214804828058033334
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4953687372900375909}
m_CullTransparentMesh: 1
--- !u!114 &6197703238363308694
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4953687372900375909}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &8001395368816636490
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1933877722026752020}
m_Layer: 5
m_Name: Handle Slide Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1933877722026752020
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8001395368816636490}
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: 2774129595816172735}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -20, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &8935844134969124222
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6330597749771692761}
- component: {fileID: 2602464901328125346}
- component: {fileID: 1235710956538413518}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6330597749771692761
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8935844134969124222}
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: 2774129595816172735}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 0.75}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2602464901328125346
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8935844134969124222}
m_CullTransparentMesh: 1
--- !u!114 &1235710956538413518
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8935844134969124222}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1

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

@ -0,0 +1,15 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SliderManager : MonoBehaviour
{
public Slider Slider;
public void SetSliderValue()
{
}
}

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

@ -0,0 +1,253 @@
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using UnityEngine;
using UnityEngine.UI;
using System;
public class instantiateprefab : MonoBehaviour
{
public GameObject prefab, panel;
public GameObject[] positionArray;
public Transform parentTf;
//public Text[] values;
// public int[] minValues;
// public int[] maxValues;
public List<LevelGroup> levelGroups;
public int minIndex = 0;
public int maxIndex = 8;
public int points;
public string Mode;
public string pointtext;
public AchievementManager manger;
public ScoreButton score;
public Button changeValueButton;
public GameManager gameManager;
private List<Slider> sliders = new List<Slider>();
public GamePlayManager gameplay;
public Slider sliderprefabalue, hintcheckvalue;
public string[] ModeNames;
public int value;
// public GameObject level;
public LevelGroupButton levelGroupButton;
public void Awake()
{
levelGroupButton=GetComponent<LevelGroupButton>();
}
void Start()
{
for (int i = 0; i < positionArray.Length; i++)
{
if (positionArray[i] != null)
{
InstantiateSlider(i, positionArray[i].transform.position);
}
}
InstantiateSSlider(positionArray.Length, new Vector3(0, -100, 0));
InstantiateSSlider(positionArray.Length + 1, new Vector3(0, -200, 0));
InstantiateSSlider(positionArray.Length + 2, new Vector3(0, -300, 0));
InstantiateSSlider(positionArray.Length + 3, new Vector3(0, -400, 0));
// Add listener to the button
changeValueButton.onClick.AddListener(ChangeSliderValueAtIndex7);
changeValueButton.onClick.AddListener(SliderValueAtIndex9);
changeValueButton.onClick.AddListener(ChangeSliderValueAtIndex8);
changeValueButton.onClick.AddListener(SliderValueAtIndex10);
}
private void InstantiateSlider(int index, Vector3 position)
{
GameObject sliderObject = Instantiate(prefab, position, Quaternion.identity, parentTf);
sliderObject.GetComponent<ScoreButton>().myIndex = index + 1;
foreach (Transform child in sliderObject.transform)
{
if (child.name == Mode)
{
Text levelname = child.GetComponent<Text>();
levelname.text = manger.AchievementList[index].DisplayName.ToString();
}
if (child.name == pointtext)
{
Text progress = child.GetComponent<Text>();
progress.text = manger.AchievementList[index].ProgressGoal + " / " + manger.AchievementList[index].ProgressSuffix.ToString();
}
}
Slider slider = sliderObject.GetComponent<Slider>();
if (slider != null)
{
slider.minValue = 0;
slider.maxValue = levelGroups[index].TotalLevel;
slider.value = levelGroups[index].CompletedLevel;
sliders.Add(slider); // Store the slider in the list
}
}
public void InstantiateSSlider(int index, Vector3 position)
{
GameObject sliderObject = Instantiate(prefab, position, Quaternion.identity, parentTf);
sliderObject.GetComponent<ScoreButton>().myIndex = index + 1;
// Assign a name to the slider object based on the achievement list or create a fallback for extra sliders
if (index < manger.AchievementList.Count)
{
string achievementName = manger.AchievementList[index].DisplayName.ToString();
sliderObject.name = "Slider - " + achievementName;
}
else
{
sliderObject.name = "Slider - Extra " + (index - manger.AchievementList.Count + 1);
}
// Set the Mode text for extra sliders
foreach (Transform child in sliderObject.transform)
{
if (child.name == Mode)
{
Text modeText = child.GetComponent<Text>();
if (modeText != null)
{
if (index < ModeNames.Length)
{
modeText.text = ModeNames[index];
}
else
{
modeText.text = "Extra Mode " + (index - ModeNames.Length + 1);
}
}
}
if (child.name == pointtext)
{
Text progress = child.GetComponent<Text>();
progress.text = (index < manger.AchievementList.Count) ?
manger.AchievementList[index].ProgressGoal + " / " + manger.AchievementList[index].ProgressSuffix.ToString() :
"0 / 10"; // Fallback for extra sliders
}
}
Slider slider = sliderObject.GetComponent<Slider>();
if (slider != null)
{
slider.minValue = 0;
slider.maxValue = (index < manger.AchievementList.Count) ? manger.AchievementList[index].ProgressGoal : 10;
// slider.value = (index < manger.AchievementList.Count) ? manger.AchievementList[index].ProgressCurrent : 0;
sliders.Add(slider); // Store the slider in the list
}
}
public void ChangeSliderValueAtIndex7()
{
if (sliders.Count > 6)
{
Slider sliderAtIndex7 = sliders[6];
sliderAtIndex7.value += 1;
sliderAtIndex7.maxValue = 10;
sliderAtIndex7.minValue = 0;
// Ensure the name of the slider at index 7 matches the AchievementList
}
}
public void ChangeSliderValueAtIndex8()
{
if (sliders.Count > 7)
{
Slider sliderAtIndex8 = sliders[7];
sliderAtIndex8.value += 1;
sliderAtIndex8.maxValue = 20;
sliderAtIndex8.minValue = 0;
}
}
public void Update()
{
SliderValueAtIndex9();
SliderValueAtIndex10();
for (int i = 0; i < sliders.Count; i++)
{
if (levelGroups[i].CompletedLevel == levelGroups[i].TotalLevel)
{
sliders[i].maxValue = levelGroups[i].TotalLevel;
// Increment the TotalLevel by 5 immediately
levelGroups[i].TotalLevel += 5;
score.completetargets += 1;
score.points += 50 *score.myIndex;
// score. targetText.text = "" + completetargets.ToString();
if (levelGroupButton != null)
{
levelGroupButton.UpdateUI();
}
}
}
}
public void SliderValueAtIndex9()
{
if (sliders.Count > 8)
{
Slider sliderAtIndex9 = sliders[8];
sliderAtIndex9.value = sliderprefabalue.value;
sliderAtIndex9.maxValue = 1000;
// score.completetargets = value;
}
}
public void SliderValueAtIndex10()
{
if (sliders.Count > 5)
{
Slider sliderAtIndex10 = sliders[5];
sliderAtIndex10.value = hintcheckvalue.value;
sliderAtIndex10.maxValue = 1000;
}
}
public void poppanel()
{
panel.SetActive(true);
}
public void MaxValueset()
{
if (sliders.Count > 7)
{
Slider sliderAtIndex8 = sliders[7];
sliderAtIndex8.maxValue = 20;
sliderAtIndex8.minValue = 0;
}
}
public void AchivementsetFalse()
{
panel.SetActive(false);
}
}

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

@ -13,10 +13,10 @@ MonoBehaviour:
m_Name: AdvanceLevelGroup m_Name: AdvanceLevelGroup
m_EditorClassIdentifier: m_EditorClassIdentifier:
LevelGroupName: Advance LevelGroupName: Advance
TotalLevel: 50 TotalLevel: 5
ResourcesFolderPath: Advance\ ResourcesFolderPath: Advance\
bgColor: {r: 1, g: 1, b: 1, a: 1} bgColor: {r: 1, g: 1, b: 1, a: 1}
StarXPReward: 4 StarXPReward: 4
NoOfHint: 5 NoOfHint: 8
LevelDetailBG: {fileID: 21300000, guid: c127e3f9b75644725ad804c4df314d36, type: 3} LevelDetailBG: {fileID: 21300000, guid: c127e3f9b75644725ad804c4df314d36, type: 3}
LevelHeaderBG: {fileID: 21300000, guid: 1ebd849011bb4f469f7f6dbab74a1602, type: 3} LevelHeaderBG: {fileID: 21300000, guid: 1ebd849011bb4f469f7f6dbab74a1602, type: 3}

@ -13,10 +13,10 @@ MonoBehaviour:
m_Name: EasyLevelGroup m_Name: EasyLevelGroup
m_EditorClassIdentifier: m_EditorClassIdentifier:
LevelGroupName: Easy LevelGroupName: Easy
TotalLevel: 50 TotalLevel: 5
ResourcesFolderPath: Easy\ ResourcesFolderPath: Easy\
bgColor: {r: 1, g: 1, b: 1, a: 1} bgColor: {r: 1, g: 1, b: 1, a: 1}
StarXPReward: 2 StarXPReward: 2
NoOfHint: 3 NoOfHint: 1
LevelDetailBG: {fileID: 21300000, guid: c127e3f9b75644725ad804c4df314d36, type: 3} LevelDetailBG: {fileID: 21300000, guid: c127e3f9b75644725ad804c4df314d36, type: 3}
LevelHeaderBG: {fileID: 21300000, guid: e8d41749b4cd4635a8cdc17885773761, type: 3} LevelHeaderBG: {fileID: 21300000, guid: e8d41749b4cd4635a8cdc17885773761, type: 3}

@ -13,7 +13,7 @@ MonoBehaviour:
m_Name: ExpertLevelGroup m_Name: ExpertLevelGroup
m_EditorClassIdentifier: m_EditorClassIdentifier:
LevelGroupName: Expert LevelGroupName: Expert
TotalLevel: 50 TotalLevel: 5
ResourcesFolderPath: Expert\ ResourcesFolderPath: Expert\
bgColor: {r: 1, g: 1, b: 1, a: 1} bgColor: {r: 1, g: 1, b: 1, a: 1}
StarXPReward: 5 StarXPReward: 5

@ -13,7 +13,7 @@ MonoBehaviour:
m_Name: HardLevelGroup m_Name: HardLevelGroup
m_EditorClassIdentifier: m_EditorClassIdentifier:
LevelGroupName: Hard LevelGroupName: Hard
TotalLevel: 50 TotalLevel: 5
ResourcesFolderPath: Hard\ ResourcesFolderPath: Hard\
bgColor: {r: 1, g: 1, b: 1, a: 1} bgColor: {r: 1, g: 1, b: 1, a: 1}
StarXPReward: 3 StarXPReward: 3

@ -10,13 +10,13 @@ MonoBehaviour:
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 85bdfd81ebecaf8513d1b5a5afe985ca, type: 3} m_Script: {fileID: 11500000, guid: 85bdfd81ebecaf8513d1b5a5afe985ca, type: 3}
m_Name: MediumLevelGroup m_Name: MediumLevelGroup 1
m_EditorClassIdentifier: m_EditorClassIdentifier:
LevelGroupName: Medium LevelGroupName: Medium
TotalLevel: 50 TotalLevel: 5
ResourcesFolderPath: Medium\ ResourcesFolderPath: Medium\
bgColor: {r: 1, g: 1, b: 1, a: 1} bgColor: {r: 1, g: 1, b: 1, a: 1}
StarXPReward: 2 StarXPReward: 2
NoOfHint: 4 NoOfHint: 1
LevelDetailBG: {fileID: 21300000, guid: c127e3f9b75644725ad804c4df314d36, type: 3} LevelDetailBG: {fileID: 21300000, guid: c127e3f9b75644725ad804c4df314d36, type: 3}
LevelHeaderBG: {fileID: 21300000, guid: a256b28009444295a6e9fd35feea5f1a, type: 3} LevelHeaderBG: {fileID: 21300000, guid: a256b28009444295a6e9fd35feea5f1a, type: 3}

@ -1,10 +1,8 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: d61999cc37d04360a3f0bf32267bf82a guid: 46272a75089b90d44b27700883ff8da3
timeCreated: 1613767609
licenseType: Free
NativeFormatImporter: NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000 mainObjectFileID: 11400000
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:

@ -0,0 +1,120 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ScoreButton : MonoBehaviour
{
public Slider slider;
public GameObject PointShowText, completeclaimbutton;
public int points, completetargets;
public Text pointText, targetText;
public instantiateprefab btn;
public LevelGroup levelgroup;
public Text progress;
public Text levelname;
public AchievementManager manager;
public int valus;
public int myIndex;
private bool pointsAwarded = false; // New flag to prevent repeated points addition
// Start is called before the first frame update
void Start()
{
points = PlayerPrefs.GetInt("Points", 0);
UpdateProgressText();
}
// Update is called once per frame
void Update()
{
UpdateProgressText();
// slider.maxValue = 5;
if (slider.value == slider.maxValue && !pointsAwarded)
{
PointShowText.SetActive(true);
completeclaimbutton.SetActive(false);
if (slider.maxValue < 50)
{
points += 50 * myIndex;
completetargets += 1;
targetText.text = "" + completetargets.ToString();
SavePoints();
// slider.maxValue += 5;
if (myIndex != 7&&myIndex!=8)
{
slider.maxValue += 5;
// pointsAwarded = true;
}
pointsAwarded = true;
UpdateProgressText();
}
}
else if (slider.value >= 5 && slider.value < slider.maxValue)
{
PointShowText.SetActive(true);
// completeclaimbutton.SetActive(false);
pointsAwarded = false;
}
else
{
PointShowText.SetActive(false);
points = 0;
}
if (points == 0)
{
PointShowText.SetActive(false);
completeclaimbutton.SetActive(true);
}
}
void UpdateProgressText()
{
progress.text = slider.value + "/" + slider.maxValue.ToString();
pointText.text = "Claim " + points.ToString();
}
public void CollectScore()
{
points = 0;
SavePoints();
pointText.text = "claim " + points.ToString();
}
void SavePoints()
{
PlayerPrefs.SetInt("Points", points );
PlayerPrefs.Save();
}
}

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

@ -4,7 +4,7 @@ using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using GoogleMobileAds.Api;
public class AdsManager : MonoBehaviour public class AdsManager : MonoBehaviour
{ {
//test ad units //test ad units

@ -16,33 +16,28 @@ using MS;
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using TMPro;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
public class GamePlayManager : MonoBehaviour public class GamePlayManager : MonoBehaviour
{ {
public Slider slider,hintslider;
public List<Cell> _cellPrefab; public List<Cell> _cellPrefab;
public Popup menuPopup; public Popup menuPopup;
[Header("GameOver Setting")] [Header("GameOver Setting")]
public Popup gameOverPopup; public Popup gameOverPopup;
public Popup rankedUpPopup;
public TMP_Text starLevel; public Text starLevel;
public TMP_Text nextStarLevel;
public TMP_Text LevelCompleteText;
public TMP_Text RankedUpText;
public ParticleSystem confettiParticle;
public Button nextBtn; public Button nextBtn;
public Button closeBtn; public Button closeBtn;
public Image fillBar; public Image fillBar;
// public ParticleSystem goParticle; public ParticleSystem goParticle;
[Header("Layout Setting")] [Header("Layout Setting")]
public RectTransform _levelContainer; public RectTransform _levelContainer;
@ -52,6 +47,7 @@ public class GamePlayManager : MonoBehaviour
public LevelGroup[] levelGroups; public LevelGroup[] levelGroups;
public static GamePlayManager instance; public static GamePlayManager instance;
public GameScene boolcheck;
[HideInInspector] [HideInInspector]
public List<Cell> allCellList; public List<Cell> allCellList;
@ -89,12 +85,17 @@ public class GamePlayManager : MonoBehaviour
private float _levelContainerMaxHeight; private float _levelContainerMaxHeight;
private Vector3 _levelContainerPosition; private Vector3 _levelContainerPosition;
public GameObject levepopup;
private bool isRotating; private bool isRotating;
public instantiateprefab prefeb;
public ScoreButton pointadd;
public int valas;
private void Awake() private void Awake()
{ {
instance = this; instance = this;
prefeb = FindObjectOfType<instantiateprefab>();
boolcheck = FindObjectOfType<GameScene>();
pointadd = FindObjectOfType<ScoreButton>(); // Automatically find the instance
} }
private void Start() private void Start()
@ -103,6 +104,14 @@ public class GamePlayManager : MonoBehaviour
_levelContainerMaxHeight = _levelContainer.rect.height; _levelContainerMaxHeight = _levelContainer.rect.height;
_levelContainerPosition = _levelContainer.localPosition; _levelContainerPosition = _levelContainer.localPosition;
SetupLevel(); SetupLevel();
// Load saved slider values
float savedSliderValue = PlayerPrefs.GetFloat("SliderValue", 0); // Default value is 0 if key doesn't exist
slider.value = savedSliderValue;
// Load saved hintslider value
float savedHintSliderValue = PlayerPrefs.GetFloat("HintSliderValue", 0); // Default value is 0 if key doesn't exist
hintslider.value = savedHintSliderValue;
} }
private void ShowMessagePopup() private void ShowMessagePopup()
@ -193,10 +202,21 @@ public class GamePlayManager : MonoBehaviour
{ {
undoList.Add(new UndoAction(c, c.RotationValue)); undoList.Add(new UndoAction(c, c.RotationValue));
c.RotationValue++; c.RotationValue++;
UnityEngine.Debug.Log("saving value");
slider.value += 1;
// Save the slider value to PlayerPrefs
PlayerPrefs.SetFloat("SliderValue", slider.value);
PlayerPrefs.Save(); // Make sure to call Save() to persist changes
// Update the slider value in instantiateprefab
StartCoroutine(RotatePipe(c)); StartCoroutine(RotatePipe(c));
} }
} }
public void Undo() public void Undo()
{ {
if (!isRotating && undoList != null && undoList.Count != 0) if (!isRotating && undoList != null && undoList.Count != 0)
@ -356,6 +376,7 @@ public class GamePlayManager : MonoBehaviour
if (list != null && list.Count > 0) if (list != null && list.Count > 0)
{ {
list[UnityEngine.Random.Range(0, list.Count)].IsHint = true; list[UnityEngine.Random.Range(0, list.Count)].IsHint = true;
boolcheck.hintcheck = true;
} }
} }
StartCoroutine(RotatePipe(null)); StartCoroutine(RotatePipe(null));
@ -423,9 +444,7 @@ public class GamePlayManager : MonoBehaviour
{ {
MessagePopup.instance.HideAll(); MessagePopup.instance.HideAll();
yield return new WaitForSeconds(delay); yield return new WaitForSeconds(delay);
LevelCompleteText.text = "Level " + GameManager.CurrentLevelNo + " Completed!";
starLevel.text = GameManager.StarLevel + string.Empty; starLevel.text = GameManager.StarLevel + string.Empty;
nextStarLevel.text = (GameManager.StarLevel + 1).ToString();
fillBar.fillAmount = GameManager.StarLevelProgress; fillBar.fillAmount = GameManager.StarLevelProgress;
nextBtn.onClick.RemoveAllListeners(); nextBtn.onClick.RemoveAllListeners();
if (GameManager.currentLevelGroup.TotalLevel > GameManager.CurrentLevelNo) if (GameManager.currentLevelGroup.TotalLevel > GameManager.CurrentLevelNo)
@ -437,7 +456,7 @@ public class GamePlayManager : MonoBehaviour
GameManager.CurrentLevelNo++; GameManager.CurrentLevelNo++;
SetupLevel(); SetupLevel();
}); });
nextBtn.GetComponentInChildren<TMP_Text>().text = "NEXT"; nextBtn.GetComponentInChildren<Text>().text = "NEXT";
} }
else else
{ {
@ -447,12 +466,12 @@ public class GamePlayManager : MonoBehaviour
closeGameOver = true; closeGameOver = true;
GameScene.instance.OnBackBtn(); GameScene.instance.OnBackBtn();
}); });
nextBtn.GetComponentInChildren<TMP_Text>().text = "BACK"; nextBtn.GetComponentInChildren<Text>().text = "BACK";
} }
nextBtn.interactable = false; nextBtn.interactable = false;
// closeBtn.interactable = false; closeBtn.interactable = false;
gameOverPopup.Open(); gameOverPopup.Open();
confettiParticle.Play();
yield return new WaitForSeconds(0.5f); yield return new WaitForSeconds(0.5f);
if (GameManager.currentLevelGroup.CompletedLevel < GameManager.CurrentLevelNo) if (GameManager.currentLevelGroup.CompletedLevel < GameManager.CurrentLevelNo)
{ {
@ -461,7 +480,6 @@ public class GamePlayManager : MonoBehaviour
{ {
GameManager.AddStar(1); GameManager.AddStar(1);
starLevel.text = GameManager.StarLevel + string.Empty; starLevel.text = GameManager.StarLevel + string.Empty;
nextStarLevel.text = (GameManager.StarLevel + 1).ToString();
if (fillBar.fillAmount > GameManager.StarLevelProgress) if (fillBar.fillAmount > GameManager.StarLevelProgress)
{ {
while (fillBar.fillAmount < 1f) while (fillBar.fillAmount < 1f)
@ -479,31 +497,19 @@ public class GamePlayManager : MonoBehaviour
} }
if (sl < GameManager.StarLevel) if (sl < GameManager.StarLevel)
{ {
RankedUpText.text = GameManager.StarLevel.ToString(); goParticle.gameObject.SetActive(value: true);
ShowRankedUpScreen(); goParticle.Emit(30);
confettiParticle.Play();
GameManager.Coin += UnityEngine.Random.Range(30, 45); GameManager.Coin += UnityEngine.Random.Range(30, 45);
GameScene.instance.UpdateUI(); GameScene.instance.UpdateUI();
} }
} }
nextBtn.interactable = true; nextBtn.interactable = true;
// closeBtn.interactable = true; closeBtn.interactable = true;
GameManager.currentLevelGroup.SetLevelCompleted(GameManager.CurrentLevelNo, Time.time - startTime); GameManager.currentLevelGroup.SetLevelCompleted(GameManager.CurrentLevelNo, Time.time - startTime);
if(AdmobController.isInterAdAvailable) if(AdmobController.isInterAdAvailable)
IronSource.Agent.showInterstitial(); IronSource.Agent.showInterstitial();
} }
private void ShowRankedUpScreen()
{
rankedUpPopup.Open();
}
public void OnRankedUpContinue()
{
rankedUpPopup.Close();
}
public void NextGame() public void NextGame()
{ {
if (GameManager.CurrentLevelNo > GameManager.currentLevelGroup.CompletedLevel) if (GameManager.CurrentLevelNo > GameManager.currentLevelGroup.CompletedLevel)
@ -513,13 +519,16 @@ public class GamePlayManager : MonoBehaviour
Toast.instance.ShowMessage("You don't have enough coins"); Toast.instance.ShowMessage("You don't have enough coins");
return; return;
} }
GameManager.Coin -= GameConfig.instance.numCoinForSkipGame; GameManager.Coin -= GameConfig.instance.numCoinForSkipGame;
GameManager.currentLevelGroup.SetLevelCompleted(GameManager.CurrentLevelNo, Time.time - startTime); GameManager.currentLevelGroup.SetLevelCompleted(GameManager.CurrentLevelNo, Time.time - startTime);
} }
menuPopup.Close(); menuPopup.Close();
Sound.instance.PlayButton(); Sound.instance.PlayButton();
if (GameManager.currentLevelGroup.TotalLevel > GameManager.CurrentLevelNo) if (GameManager.currentLevelGroup.TotalLevel > GameManager.CurrentLevelNo)
{ {
Timer.Schedule(this, 0.8f, delegate Timer.Schedule(this, 0.8f, delegate
{ {
GameManager.CurrentLevelNo++; GameManager.CurrentLevelNo++;
@ -531,4 +540,23 @@ public class GamePlayManager : MonoBehaviour
GameScene.instance.OnBackBtn(); GameScene.instance.OnBackBtn();
} }
} }
public void HintCheck()
{
if (boolcheck.hintcheck == true)
{
Debug.Log("hint check");
hintslider.value += 1;
valas += 1;
// Save the hintslider value to PlayerPrefs
PlayerPrefs.SetFloat("HintSliderValue", hintslider.value);
PlayerPrefs.Save(); // Make sure to call Save() to persist changes
boolcheck.hintcheck = false;
}
}
public void levelpopup()
{
levepopup.SetActive(true);
}
} }

@ -13,7 +13,6 @@ U should buy the asset from home store if u use it in your project!
*/ */
using MS; using MS;
using TMPro;
using UnityEngine; using UnityEngine;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
using UnityEngine.UI; using UnityEngine.UI;
@ -23,24 +22,26 @@ public class GameScene : MonoBehaviour
[Header("Menu")] [Header("Menu")]
public Text coinLbl; public Text coinLbl;
public TMP_Text titleLevelGroupLbl; public Text titleLevelGroupLbl;
public TMP_Text titleLevelNoLbl; public Text titleLevelNoLbl;
public Image titleBG;
public Popup gameOverPopup; public Popup gameOverPopup;
public TMP_Text rewardValueText; public Text rewardValueText;
public TMP_Text coinForHintText; public Text coinForHintText;
public GameObject skipCoinObj; public GameObject skipCoinObj;
// public GameObject skipTextObj; public GameObject skipTextObj;
public TMP_Text skipCoinValueText; public Text skipCoinValueText;
public static GameScene instance; public static GameScene instance;
public bool hintcheck = false;
private void Start() private void Start()
{ {
@ -49,7 +50,7 @@ public class GameScene : MonoBehaviour
coinForHintText.text = GameConfig.instance.numCoinForHint.ToString(); coinForHintText.text = GameConfig.instance.numCoinForHint.ToString();
skipCoinValueText.text = GameConfig.instance.numCoinForSkipGame.ToString(); skipCoinValueText.text = GameConfig.instance.numCoinForSkipGame.ToString();
Music.instance.Play(Music.Type.MainMusic); Music.instance.Play(Music.Type.MainMusic);
//IronSource.Agent.loadBanner(IronSourceBannerSize.SMART, IronSourceBannerPosition.BOTTOM); IronSource.Agent.loadBanner(IronSourceBannerSize.SMART, IronSourceBannerPosition.BOTTOM);
} }
public void UpdateUI() public void UpdateUI()
@ -58,7 +59,7 @@ public class GameScene : MonoBehaviour
titleLevelGroupLbl.text = GameManager.currentLevelGroup.LevelGroupName; titleLevelGroupLbl.text = GameManager.currentLevelGroup.LevelGroupName;
titleLevelNoLbl.text = GameManager.CurrentLevelNo + string.Empty; titleLevelNoLbl.text = GameManager.CurrentLevelNo + string.Empty;
titleLevelNoLbl.color = GameManager.currentLevelGroup.bgColor; titleLevelNoLbl.color = GameManager.currentLevelGroup.bgColor;
// titleBG.sprite = GameManager.currentLevelGroup.LevelHeaderBG; titleBG.sprite = GameManager.currentLevelGroup.LevelHeaderBG;
} }
public void OnBackBtn() public void OnBackBtn()
@ -67,18 +68,18 @@ public class GameScene : MonoBehaviour
{ {
Sound.instance.PlayButton(Sound.Button.Back); Sound.instance.PlayButton(Sound.Button.Back);
GameManager.openLevelSelection = true; GameManager.openLevelSelection = true;
SceneManager.LoadScene("HomeScene"); SceneManager.LoadScene("HomeScene1");
} }
} }
public void ShowMenuPopup() public void ShowMenuPopup()
{ {
// bool flag = GameManager.CurrentLevelNo > GameManager.currentLevelGroup.CompletedLevel; bool flag = GameManager.CurrentLevelNo > GameManager.currentLevelGroup.CompletedLevel;
// skipCoinObj.SetActive(flag); skipCoinObj.SetActive(flag);
// Transform transform = skipTextObj.transform; Transform transform = skipTextObj.transform;
// float x = (!flag) ? 12 : (-19); float x = (!flag) ? 12 : (-19);
// Vector3 localPosition = skipTextObj.transform.localPosition; Vector3 localPosition = skipTextObj.transform.localPosition;
// transform.localPosition = new Vector3(x, localPosition.y); transform.localPosition = new Vector3(x, localPosition.y);
Sound.instance.PlayButton(); Sound.instance.PlayButton();
} }
@ -94,7 +95,7 @@ public class GameScene : MonoBehaviour
if (!GamePlayManager.instance.isGameOver || GamePlayManager.instance.closeGameOver) if (!GamePlayManager.instance.isGameOver || GamePlayManager.instance.closeGameOver)
{ {
Sound.instance.PlayButton(); Sound.instance.PlayButton();
SceneManager.LoadScene("HomeScene"); SceneManager.LoadScene("HomeScene1");
} }
} }
@ -106,23 +107,20 @@ public class GameScene : MonoBehaviour
Toast.instance.ShowMessage($"You got {rewardedVideoAmount} free coins"); Toast.instance.ShowMessage($"You got {rewardedVideoAmount} free coins");
} }
public bool debugHints = false;
public void OnHintBtn() public void OnHintBtn()
{ {
if (!GamePlayManager.instance.isGameOver) if (!GamePlayManager.instance.isGameOver)
{
if (!debugHints)
{ {
Sound.instance.PlayButton(); Sound.instance.PlayButton();
if (GameManager.Coin < GameConfig.instance.numCoinForHint) //if (GameManager.Coin < GameConfig.instance.numCoinForHint)
{ //{
Toast.instance.ShowMessage("You don't have enough coins"); // Toast.instance.ShowMessage("You don't have enough coins");
return; // return;
} //}
}
GameManager.Coin -= GameConfig.instance.numCoinForHint; GameManager.Coin -= GameConfig.instance.numCoinForHint;
UpdateUI(); UpdateUI();
GamePlayManager.instance.GiveHint(); GamePlayManager.instance.GiveHint();
//hintcheck = true;
} }
} }
@ -153,4 +151,8 @@ public class GameScene : MonoBehaviour
{ {
Sound.instance.PlayButton(Sound.Button.Back); Sound.instance.PlayButton(Sound.Button.Back);
} }
public void back()
{
SceneManager.LoadScene(0);
}
} }

@ -19,7 +19,8 @@ public class LevelGroup : ScriptableObject
{ {
public string LevelGroupName = "Easy"; public string LevelGroupName = "Easy";
public int TotalLevel = 50; public int TotalLevel = 5;
public string ResourcesFolderPath = "Easy\\"; public string ResourcesFolderPath = "Easy\\";
@ -33,6 +34,7 @@ public class LevelGroup : ScriptableObject
public Sprite LevelHeaderBG; public Sprite LevelHeaderBG;
public int CompletedLevel public int CompletedLevel
{ {
get get

@ -13,20 +13,20 @@ U should buy the asset from home store if u use it in your project!
*/ */
using MS; using MS;
using TMPro;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using System;
//using static System.Net.Mime.MediaTypeNames;
//using static System.Net.Mime.MediaTypeNames;
[ExecuteInEditMode] [ExecuteInEditMode]
public class LevelGroupButton : MonoBehaviour public class LevelGroupButton : MonoBehaviour
{ {
public LevelGroup levelGroup; public LevelGroup levelGroup;
public Text TitleLbl;
public TMP_Text TitleLbl; public Text LevelCompletdLbl;
public TMP_Text LevelCompletdLbl;
public GameObject AwardGoldImage; public GameObject AwardGoldImage;
public int TotalLevelsCompleted;
private void Start() private void Start()
{ {
@ -41,6 +41,8 @@ public class LevelGroupButton : MonoBehaviour
private void Update() private void Update()
{ {
// Can leave this empty unless you have other logic to add here
UpdateUI();
} }
[ContextMenu("UpdateUI")] [ContextMenu("UpdateUI")]
@ -49,6 +51,9 @@ public class LevelGroupButton : MonoBehaviour
base.name = levelGroup.LevelGroupName; base.name = levelGroup.LevelGroupName;
TitleLbl.text = base.name.ToUpper(); TitleLbl.text = base.name.ToUpper();
LevelCompletdLbl.text = levelGroup.CompletedLevel + " / " + levelGroup.TotalLevel; LevelCompletdLbl.text = levelGroup.CompletedLevel + " / " + levelGroup.TotalLevel;
AwardGoldImage.GetComponent<_2dxFX_GrayScale>().enabled = !(levelGroup.CompletedLevel >= levelGroup.TotalLevel); AwardGoldImage.SetActive(levelGroup.CompletedLevel >= 5); // Show award if completed levels >= 5
TotalLevelsCompleted = levelGroup.CompletedLevel;
// Additional UI updates can go here if needed
} }
} }

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

File diff suppressed because it is too large Load Diff

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

@ -0,0 +1,152 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &848739300060745012
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4385550723351327410}
- component: {fileID: 16051867991214920}
- component: {fileID: 1820762587381449173}
- component: {fileID: 7059658853800109678}
m_Layer: 5
m_Name: GamePlayManager
m_TagString:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4385550723351327410
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 848739300060745012}
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: 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: 0, y: 55}
m_SizeDelta: {x: 650, y: 850}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &16051867991214920
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 848739300060745012}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7d4d1386b58481ac8338b97496451549, type: 3}
m_Name:
m_EditorClassIdentifier:
slider: {fileID: 0}
_cellPrefab:
- {fileID: 1790415148045804981, guid: 4f7a5f448033b8e4c895a7d4fcb89e3e, type: 3}
- {fileID: 1790415148045804992, guid: 6fd6ed12f3e506d44b59ac7c04ffb652, type: 3}
- {fileID: 1790415148045804987, guid: e1e6a2ae01498d64bb5a8a5f662a5a83, type: 3}
- {fileID: 1790415148045804970, guid: 395d0938f3a0de04e99c121991bfa456, type: 3}
- {fileID: 1790415148045804983, guid: 0bfae999f7498cb488d90842a67d7531, type: 3}
- {fileID: 1790415148045804967, guid: 4844be682b725e3458537eb4540d92ef, type: 3}
- {fileID: 1790415148045804986, guid: 47fadc98e0ee9cf40bcd01477e1fc6d3, type: 3}
- {fileID: 1790415148045804980, guid: 5f338f4bcc2ac7e438ef280b1357749e, type: 3}
menuPopup: {fileID: 0}
gameOverPopup: {fileID: 0}
starLevel: {fileID: 0}
nextBtn: {fileID: 0}
closeBtn: {fileID: 0}
fillBar: {fileID: 0}
goParticle: {fileID: 0}
_levelContainer: {fileID: 4385550723351327410}
_space: 0
levelGroups:
- {fileID: 11400000, guid: 3cdd9d8df70f43d5ae2246b73451a8bf, type: 2}
- {fileID: 11400000, guid: 46272a75089b90d44b27700883ff8da3, type: 2}
- {fileID: 11400000, guid: d606e6845dd447e2bf40638facbc7c7e, type: 2}
- {fileID: 11400000, guid: e5f4032f73074b45aa468e2ecf71f81c, type: 2}
- {fileID: 11400000, guid: cf6a4a494d684237bcf9ce01e1ac77ae, type: 2}
allCellList:
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
startCellList:
- {fileID: 0}
- {fileID: 0}
midCellList: []
endCellList: []
visibleCellList: []
isGameOver: 0
closeGameOver: 0
row: 0
column: 0
prefeb: {fileID: 3103223411245280076, guid: a839d31fd6b8ca7409802d7859982b69, type: 3}
--- !u!222 &1820762587381449173
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 848739300060745012}
m_CullTransparentMesh: 1
--- !u!114 &7059658853800109678
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 848739300060745012}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.066}
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: 0}
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

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

@ -0,0 +1,75 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4896978051067287224
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3708013770098244478}
- component: {fileID: 3103223411245280076}
m_Layer: 0
m_Name: InstantiatePrefabScript
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &3708013770098244478
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4896978051067287224}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0.53219604, y: 1.5411571, z: 1659.634}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &3103223411245280076
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4896978051067287224}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6f1c97da24073924caf516deda1b2c95, type: 3}
m_Name:
m_EditorClassIdentifier:
prefab: {fileID: 0}
panel: {fileID: 0}
positionArray:
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
parentTf: {fileID: 0}
values: []
minValues:
maxValues:
levelGroups:
- {fileID: 11400000, guid: 3cdd9d8df70f43d5ae2246b73451a8bf, type: 2}
- {fileID: 11400000, guid: d606e6845dd447e2bf40638facbc7c7e, type: 2}
- {fileID: 11400000, guid: cf6a4a494d684237bcf9ce01e1ac77ae, type: 2}
- {fileID: 11400000, guid: e5f4032f73074b45aa468e2ecf71f81c, type: 2}
- {fileID: 11400000, guid: cf6a4a494d684237bcf9ce01e1ac77ae, type: 2}
minIndex: 0
maxIndex: 4
points: 0
Mode: mode
pointtext: progressText
manger: {fileID: 0}
score: {fileID: -399046894741779023, guid: 4c5a0e11d618d694489eb3e8da227f72, type: 3}
changeValueButton: {fileID: 0}
gameplay: {fileID: 16051867991214920, guid: 102ee8df0bf8fad48bef341487481007, type: 3}

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

@ -0,0 +1,389 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &135218459640954282
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2167499935773084719}
m_Layer: 5
m_Name: Handle Slide Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2167499935773084719
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 135218459640954282}
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: 2607480151288909695}
m_Father: {fileID: 6746674346335426683}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -20, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &449409752519791933
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 99830146067753176}
- component: {fileID: 5196723517483220098}
- component: {fileID: 7178744187175688649}
m_Layer: 5
m_Name: Fill
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &99830146067753176
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449409752519791933}
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: 652778455579645372}
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: 10, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5196723517483220098
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449409752519791933}
m_CullTransparentMesh: 1
--- !u!114 &7178744187175688649
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449409752519791933}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &1296434722578354235
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 652778455579645372}
m_Layer: 5
m_Name: Fill Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &652778455579645372
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1296434722578354235}
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: 99830146067753176}
m_Father: {fileID: 6746674346335426683}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 0.75}
m_AnchoredPosition: {x: -5, y: 0}
m_SizeDelta: {x: -20, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &2895443744164446780
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2607480151288909695}
- component: {fileID: 3311012767658700401}
- component: {fileID: 1074664156797272334}
m_Layer: 5
m_Name: Handle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2607480151288909695
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2895443744164446780}
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: 2167499935773084719}
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: 20, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3311012767658700401
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2895443744164446780}
m_CullTransparentMesh: 1
--- !u!114 &1074664156797272334
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2895443744164446780}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
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!1 &5871698421323775822
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 271856203728411820}
- component: {fileID: 6326904602184955982}
- component: {fileID: 8102569241170635733}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &271856203728411820
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5871698421323775822}
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: 6746674346335426683}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 0.75}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6326904602184955982
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5871698421323775822}
m_CullTransparentMesh: 1
--- !u!114 &8102569241170635733
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5871698421323775822}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &6285254072296839520
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6746674346335426683}
- component: {fileID: 1051964499492098825}
m_Layer: 5
m_Name: hintslidervalue
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6746674346335426683
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6285254072296839520}
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: 271856203728411820}
- {fileID: 652778455579645372}
- {fileID: 2167499935773084719}
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: -4, y: -309}
m_SizeDelta: {x: 405, y: 110.05}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1051964499492098825
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6285254072296839520}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1074664156797272334}
m_FillRect: {fileID: 99830146067753176}
m_HandleRect: {fileID: 2607480151288909695}
m_Direction: 0
m_MinValue: 0
m_MaxValue: 100
m_WholeNumbers: 1
m_Value: 0
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []

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

@ -0,0 +1,389 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2478491155267077364
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6645545333255345970}
- component: {fileID: 6298780508598877821}
- component: {fileID: 2079207337931315616}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6645545333255345970
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2478491155267077364}
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: 319237273700167103}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 0.75}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6298780508598877821
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2478491155267077364}
m_CullTransparentMesh: 1
--- !u!114 &2079207337931315616
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2478491155267077364}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &3058597586189792496
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 319237273700167103}
- component: {fileID: 5885820980592021006}
m_Layer: 5
m_Name: piperotationValue
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &319237273700167103
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3058597586189792496}
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: 6645545333255345970}
- {fileID: 2080642766796092080}
- {fileID: 7187377535277370765}
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: 24, y: -169}
m_SizeDelta: {x: 440, y: 145.43}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &5885820980592021006
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3058597586189792496}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 3265110640012991992}
m_FillRect: {fileID: 3199069543244353410}
m_HandleRect: {fileID: 2777582929284410700}
m_Direction: 0
m_MinValue: 0
m_MaxValue: 1000
m_WholeNumbers: 1
m_Value: 0
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
--- !u!1 &3315553756479568848
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2777582929284410700}
- component: {fileID: 950175085875260154}
- component: {fileID: 3265110640012991992}
m_Layer: 5
m_Name: Handle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2777582929284410700
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3315553756479568848}
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: 7187377535277370765}
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: 20, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &950175085875260154
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3315553756479568848}
m_CullTransparentMesh: 1
--- !u!114 &3265110640012991992
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3315553756479568848}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
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!1 &5181995455046054059
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7187377535277370765}
m_Layer: 5
m_Name: Handle Slide Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7187377535277370765
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5181995455046054059}
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: 2777582929284410700}
m_Father: {fileID: 319237273700167103}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -20, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &6783748264621451765
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2080642766796092080}
m_Layer: 5
m_Name: Fill Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2080642766796092080
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6783748264621451765}
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: 3199069543244353410}
m_Father: {fileID: 319237273700167103}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 0.75}
m_AnchoredPosition: {x: -5, y: 0}
m_SizeDelta: {x: -20, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &6969912674905073605
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3199069543244353410}
- component: {fileID: 7531866946379122767}
- component: {fileID: 975991179855790370}
m_Layer: 5
m_Name: Fill
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3199069543244353410
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6969912674905073605}
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: 2080642766796092080}
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: 10, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7531866946379122767
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6969912674905073605}
m_CullTransparentMesh: 1
--- !u!114 &975991179855790370
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6969912674905073605}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1

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

@ -0,0 +1,20 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class uislider : MonoBehaviour
{
public Slider slider;
// Start is called before the first frame update
void Start()
{
slider.minValue = 0f;
slider.maxValue = 3f;
}
// Update is called once per frame
void Update()
{
}
}

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

@ -1,10 +1,12 @@
{ {
"dependencies": { "dependencies": {
"com.unity.2d.sprite": "1.0.0", "com.unity.2d.sprite": "1.0.0",
"com.unity.ai.navigation": "1.1.5",
"com.unity.ide.rider": "3.0.31", "com.unity.ide.rider": "3.0.31",
"com.unity.ide.visualstudio": "2.0.22", "com.unity.ide.visualstudio": "2.0.22",
"com.unity.ide.vscode": "1.2.5", "com.unity.recorder": "4.0.3",
"com.unity.textmeshpro": "3.0.9", "com.unity.textmeshpro": "3.0.9",
"com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.9",
"com.unity.modules.ai": "1.0.0", "com.unity.modules.ai": "1.0.0",
"com.unity.modules.androidjni": "1.0.0", "com.unity.modules.androidjni": "1.0.0",
"com.unity.modules.animation": "1.0.0", "com.unity.modules.animation": "1.0.0",

@ -6,6 +6,15 @@
"source": "builtin", "source": "builtin",
"dependencies": {} "dependencies": {}
}, },
"com.unity.ai.navigation": {
"version": "1.1.5",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.modules.ai": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.ext.nunit": { "com.unity.ext.nunit": {
"version": "1.0.6", "version": "1.0.6",
"depth": 1, "depth": 1,
@ -31,13 +40,31 @@
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.ide.vscode": { "com.unity.recorder": {
"version": "1.2.5", "version": "4.0.3",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": {
"com.unity.timeline": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.sysroot": {
"version": "2.0.10",
"depth": 1,
"source": "registry",
"dependencies": {}, "dependencies": {},
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.sysroot.linux-x86_64": {
"version": "2.0.9",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.sysroot": "2.0.10"
},
"url": "https://packages.unity.com"
},
"com.unity.test-framework": { "com.unity.test-framework": {
"version": "1.1.33", "version": "1.1.33",
"depth": 1, "depth": 1,
@ -58,6 +85,28 @@
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.timeline": {
"version": "1.7.6",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.modules.audio": "1.0.0",
"com.unity.modules.director": "1.0.0",
"com.unity.modules.animation": "1.0.0",
"com.unity.modules.particlesystem": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.toolchain.win-x86_64-linux-x86_64": {
"version": "2.0.9",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.sysroot": "2.0.10",
"com.unity.sysroot.linux-x86_64": "2.0.9"
},
"url": "https://packages.unity.com"
},
"com.unity.ugui": { "com.unity.ugui": {
"version": "1.0.0", "version": "1.0.0",
"depth": 1, "depth": 1,

@ -6,8 +6,8 @@ EditorBuildSettings:
serializedVersion: 2 serializedVersion: 2
m_Scenes: m_Scenes:
- enabled: 1 - enabled: 1
path: Assets/PipeOut/Scenes/HomeScene.unity path: Assets/HomeScene 1.unity
guid: 4dd7b23419e364348ae5e5bfc89c5d66 guid: 6457a9685a6c36e418d73cb6b0d0129b
- enabled: 1 - enabled: 1
path: Assets/PipeOut/Scenes/GameScene.unity path: Assets/PipeOut/Scenes/GameScene.unity
guid: 8775cd7935277614c91b5ab720bef4da guid: 8775cd7935277614c91b5ab720bef4da

@ -6,6 +6,7 @@ TagManager:
tags: tags:
- OverlayDialog - OverlayDialog
- LevelGroupPopup - LevelGroupPopup
- f
layers: layers:
- Default - Default
- TransparentFX - TransparentFX
@ -40,6 +41,6 @@ TagManager:
- -
- -
m_SortingLayers: m_SortingLayers:
- name: "Default" - name: Default
uniqueID: 0 uniqueID: 0
locked: 0 locked: 0

Loading…
Cancel
Save