Added Achievements

dev-hazim
Hazim Bin Ijaz 1 month ago
parent 0e9326ddbe
commit 5729b9c842

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

File diff suppressed because it is too large Load Diff

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

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

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 16e610cdab080204fa9d5c30ad4e2e59
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: 9d8882b0ccdc68248aad77b3853efefe
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,10 @@
fileFormatVersion: 2
guid: dc993b6eded6e944a8a397afa314271b
folderAsset: yes
timeCreated: 1564474219
licenseType: Store
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: 18bda7c8b06c42d4e8aaae9fe94411db
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

@ -0,0 +1,91 @@
fileFormatVersion: 2
guid: 686e0ad7b1e20ba44a57859d28e347f3
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: 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
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

@ -0,0 +1,91 @@
fileFormatVersion: 2
guid: 184c136087ea482429b05d8bcb695877
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: 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
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

@ -0,0 +1,91 @@
fileFormatVersion: 2
guid: 27573d2cf2314b94c94b180cd13c624d
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: 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
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

@ -0,0 +1,91 @@
fileFormatVersion: 2
guid: 5ab57d9e170d8c44ebbf7f77e201e957
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: 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
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

@ -0,0 +1,91 @@
fileFormatVersion: 2
guid: 808ff19c5939e184799d3d5d0e9a2887
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: 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
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

@ -0,0 +1,91 @@
fileFormatVersion: 2
guid: e02d3f0c166d58e4b8186dfc4a4e094f
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: 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
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: 7e3bff8acd42b3b4bb70d2445334ee05
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,703 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!82 &859350399
AudioSource:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3586384449932917232}
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0}
m_audioClip: {fileID: 0}
m_PlayOnAwake: 1
m_Volume: 1
m_Pitch: 1
Loop: 0
Mute: 0
Spatialize: 0
SpatializePostEffects: 0
Priority: 128
DopplerLevel: 1
MinDistance: 1
MaxDistance: 500
Pan2D: 0
rolloffMode: 0
BypassEffects: 0
BypassListenerEffects: 0
BypassReverbZones: 0
rolloffCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
panLevelCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
spreadCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
reverbZoneMixCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
--- !u!1001 &6968028512910981927
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4292894177777281744, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4292894177777281744, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4292894177777281744, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4292894177777281744, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4292894177777281744, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5480437008952652415, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5480437008952652415, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5480437008952652415, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5480437008952652415, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5480437008952652415, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5480437008952652415, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5828700596380768718, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_Value
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869116409126469268, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893063367083816, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893063367083816, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893063367083816, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893063367083816, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893063367083816, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893063367083816, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893063796210060, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893063796210060, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893063796210060, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893063796210060, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893063796210060, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064589555807, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064589555811, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991959, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_Name
value: Achievement Manager
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: States.Array.size
value: 6
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.size
value: 6
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[0].Key
value: GoalExample
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[0].DisplayName
value: Goal Example
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[0].Description
value: An example of a goal achievement
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[0].LockedIcon
value:
objectReference: {fileID: 21300000, guid: eaf6b4fc727cf034ebd1f72705fb4162,
type: 3}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[0].AchievedIcon
value:
objectReference: {fileID: 21300000, guid: c44233c69e3ab144299a378bc9a4f01c,
type: 3}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].Key
value: ProgressionExample
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].DisplayName
value: Progression Example
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].Description
value: An example of a progression achievement
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].LockedIcon
value:
objectReference: {fileID: 21300000, guid: 0a42b67822a79da4bb9d89e8e94aa013,
type: 3}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].AchievedIcon
value:
objectReference: {fileID: 21300000, guid: f33e1fd63528e464c87a303b9239eb81,
type: 3}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[2].Key
value: OverlayExample1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[2].DisplayName
value: Overlay Example 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[2].Description
value: Overlay icon example
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[2].AchievedIcon
value:
objectReference: {fileID: 21300000, guid: 710f308d078ea9040ac06f6a665bb92d,
type: 3}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].AchievedIcon
value:
objectReference: {fileID: 21300000, guid: 5c00ee8e0ff0af840a0b185b1d89698a,
type: 3}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].LockedIcon
value:
objectReference: {fileID: 21300000, guid: 24d0082db3d21fb4bb8470bb70b2b0ca,
type: 3}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[2].LockedIcon
value:
objectReference: {fileID: 21300000, guid: 24d0082db3d21fb4bb8470bb70b2b0ca,
type: 3}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[2].LockOverlay
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].LockOverlay
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].Key
value: OverlayExample2
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].DisplayName
value: Overlay Example 2
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].Description
value: Overlay icon example
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].Progression
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].Progression
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].ProgressGoal
value: 100
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].NotificationFrequency
value: 25
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].ProgressGoal
value: 1000
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].NotificationFrequency
value: 50
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: States.Array.data[0].Achieved
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: States.Array.data[3].Progress
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: States.Array.data[3].LastProgressUpdate
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: UseFinalAchievement
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[4].Key
value: SpoilerExample
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[4].Spoiler
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[4].DisplayName
value: Spoiler Example
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[4].Description
value: Shhhh
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: FinalAchievement.Key
value: dawd
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: FinalAchievement.DisplayName
value: dawda
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: FinalAchievement.Description
value: fawf
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievedSound
value:
objectReference: {fileID: 8300000, guid: 3400fb2a60564af4db6cc1c28c188006, type: 3}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: ProgressMadeSound
value:
objectReference: {fileID: 8300000, guid: 9492b32862561624aa75d621f48074c5, type: 3}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[4].ProgressGoal
value: 10
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[5].Key
value: Completionist
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[5].DisplayName
value: Completionist
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[5].Description
value: Complete All Other Achevements
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[5].LockedIcon
value:
objectReference: {fileID: 21300000, guid: 24d0082db3d21fb4bb8470bb70b2b0ca,
type: 3}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[5].LockOverlay
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[5].AchievedIcon
value:
objectReference: {fileID: 21300000, guid: 03bf8e5b765702646955a781f14f77dc,
type: 3}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[5].ProgressGoal
value: 4
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: FinalAchievementKey
value: Completionist
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].ProgressSuffix
value: KM
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[4].Progression
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalPosition.x
value: 522
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalPosition.y
value: 222.45755
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalPosition.z
value: -6.520151
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991962, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: OpenMenuKey
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064881311957, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064881311957, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064881311957, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064881311957, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064881311957, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064881311957, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938667314797307658, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938667314797307658, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938667314797307658, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938667314797307658, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938667314797307658, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938704051228999786, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938704051228999786, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938808289404583416, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938947907486899010, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938947907486899010, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938947907486899010, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938947907486899010, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938947907486899010, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938947907486899010, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938994040409916176, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5938994040409916176, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5939228463576693256, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_SortingOrder
value: 3505
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 31c71d95d8fbeb7479842253d3964958, type: 3}
--- !u!1 &3586384449932917232 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 5869893064832991959, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
m_PrefabInstance: {fileID: 6968028512910981927}
m_PrefabAsset: {fileID: 0}

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

File diff suppressed because it is too large Load Diff

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: a20bd0cb44f0df44881733532fd7beb4
timeCreated: 1538436503
licenseType: Store
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,10 @@
fileFormatVersion: 2
guid: be738e6402e9ee346b88866c30a4cc10
folderAsset: yes
timeCreated: 1539678242
licenseType: Store
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: 47387e362ae1d894cb1ceeef8520dc47
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: d0138c541f3ab7949b963cac83160b10
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

@ -0,0 +1,103 @@
fileFormatVersion: 2
guid: 03bf8e5b765702646955a781f14f77dc
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

@ -0,0 +1,103 @@
fileFormatVersion: 2
guid: eaf6b4fc727cf034ebd1f72705fb4162
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

@ -0,0 +1,103 @@
fileFormatVersion: 2
guid: c44233c69e3ab144299a378bc9a4f01c
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

@ -0,0 +1,103 @@
fileFormatVersion: 2
guid: 710f308d078ea9040ac06f6a665bb92d
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

@ -0,0 +1,103 @@
fileFormatVersion: 2
guid: 5c00ee8e0ff0af840a0b185b1d89698a
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

@ -0,0 +1,103 @@
fileFormatVersion: 2
guid: 24d0082db3d21fb4bb8470bb70b2b0ca
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

@ -0,0 +1,103 @@
fileFormatVersion: 2
guid: 0a42b67822a79da4bb9d89e8e94aa013
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

@ -0,0 +1,103 @@
fileFormatVersion: 2
guid: f33e1fd63528e464c87a303b9239eb81
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,10 @@
fileFormatVersion: 2
guid: 2ae3c65884266734ebf5461b572a5191
folderAsset: yes
timeCreated: 1539678250
licenseType: Store
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 = 1;
}
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,61 @@
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;
}
/// <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:

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

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

@ -324,6 +324,339 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &1913029247
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 5869893064832991959, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_Name
value: Achievement Manager
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: States.Array.size
value: 8
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: UseFinalAchievement
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.size
value: 8
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: States.Array.data[0].Achieved
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: States.Array.data[1].Achieved
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: States.Array.data[1].Progress
value: 5
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[0].Key
value: Completed_Easy_Level
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].Key
value: Completed_Medium_Level
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[2].Key
value: Completed_Hard_Level
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].Key
value: Completed_Advance_Level
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[4].Key
value: Completed_Expert_Level
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[5].Key
value: Watched_10_Ads
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[6].Key
value: Watched_20_Ads
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[7].Key
value: Rotated_Pipe
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: States.Array.data[1].LastProgressUpdate
value: 4
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[0].Description
value: This Achievement will unlock when user completes 5 easy levels
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[0].DisplayName
value: Complete Easy Levels
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[0].Progression
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].Description
value: This Achievement will unlock when user completes 5 Medium levels
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].DisplayName
value: Complete Medium Levels
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].Progression
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[2].Description
value: This Achievement will unlock when user completes 5 Hard levels
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[2].DisplayName
value: Complete Hard Levels
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[2].Progression
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].Description
value: This Achievement will unlock when user completes 5 Advanced levels
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].DisplayName
value: Complete Advance Levels
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].Progression
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[4].Description
value: This Achievement will unlock when user completes 5 Expert levels
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[4].DisplayName
value: Complete Expert Levels
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[4].Progression
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[5].Description
value: This Achievement will unlock when user watches 10 ads
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[5].DisplayName
value: Watch 10 Ads
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[5].Progression
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[6].Description
value: This Achievement will unlock when user watches 20 ads
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[6].DisplayName
value: Watch 20 Ads
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[6].Progression
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[7].Description
value: This achievement will progress on every pipe rotation
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[7].DisplayName
value: Pipe Rotation
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[7].Progression
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[0].ProgressGoal
value: 5
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].ProgressGoal
value: 5
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[2].ProgressGoal
value: 5
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].ProgressGoal
value: 5
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[4].ProgressGoal
value: 5
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[5].ProgressGoal
value: 10
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[6].ProgressGoal
value: 20
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[0].NotificationFrequency
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[1].NotificationFrequency
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[2].NotificationFrequency
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[3].NotificationFrequency
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[4].NotificationFrequency
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[5].NotificationFrequency
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991960, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: AchievementList.Array.data[6].NotificationFrequency
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalPosition.x
value: 522
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalPosition.y
value: 222.45755
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalPosition.z
value: -6.520151
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5869893064832991961, guid: 31c71d95d8fbeb7479842253d3964958,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 31c71d95d8fbeb7479842253d3964958, type: 3}
--- !u!1660057539 &9223372036854775807 --- !u!1660057539 &9223372036854775807
SceneRoots: SceneRoots:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -331,3 +664,4 @@ SceneRoots:
- {fileID: 545797709} - {fileID: 545797709}
- {fileID: 1341897758} - {fileID: 1341897758}
- {fileID: 748898821} - {fileID: 748898821}
- {fileID: 1913029247}

@ -5,5 +5,12 @@ public class GameConstants
public static string LevelCompletedStatsKey = "LevelsCompleted"; public static string LevelCompletedStatsKey = "LevelsCompleted";
public static string NameEnteredCheckKey = "IsNameEntered"; public static string NameEnteredCheckKey = "IsNameEntered";
public static string DisplayNameKey = "DisplayName"; public static string DisplayNameKey = "DisplayName";
public static string Ach_CompleteEasyLevelKey = "Completed_Easy_Level";
public static string Ach_CompleteMediumLevelKey = "Completed_Medium_Level";
public static string Ach_CompleteHardLevelKey = "Completed_Hard_Level";
public static string Ach_CompleteExpertLevelKey = "Completed_Expert_Level";
public static string Ach_CompleteAdvanceLevelKey = "Completed_Advance_Level";
public static string Ach_Watched10Ads = "Watched_10_Ads";
public static string Ach_Watched20Ads = "Watched_20_Ads";
public static string Ach_RotatedPipes = "Rotated_Pipes";
} }

@ -194,6 +194,7 @@ public class GamePlayManager : MonoBehaviour
private IEnumerator RotatePipe(Cell c) private IEnumerator RotatePipe(Cell c)
{ {
AchievementManager.instance.AddAchievementProgress(GameConstants.Ach_RotatedPipes, 1);
isRotating = true; isRotating = true;
if (c != null) if (c != null)
{ {
@ -373,6 +374,7 @@ public class GamePlayManager : MonoBehaviour
{ {
MessagePopup.instance.HideAll(); MessagePopup.instance.HideAll();
PlayFabManager.Instance.playFabLeaderboards.UpdateLevelsCompleted(GameManager.CurrentLevelNo * (GameManager.CurrentLevelGroupIndex + 1)); PlayFabManager.Instance.playFabLeaderboards.UpdateLevelsCompleted(GameManager.CurrentLevelNo * (GameManager.CurrentLevelGroupIndex + 1));
UpdateAchievements();
yield return new WaitForSeconds(delay); yield return new WaitForSeconds(delay);
LevelCompleteText.text = "Level " + GameManager.CurrentLevelNo + " Completed!"; LevelCompleteText.text = "Level " + GameManager.CurrentLevelNo + " Completed!";
starLevel.text = GameManager.StarLevel + string.Empty; starLevel.text = GameManager.StarLevel + string.Empty;
@ -445,6 +447,28 @@ public class GamePlayManager : MonoBehaviour
IronSource.Agent.showInterstitial(); IronSource.Agent.showInterstitial();
} }
private void UpdateAchievements()
{
switch (GameManager.CurrentLevelGroupIndex)
{
case 0:
AchievementManager.instance.AddAchievementProgress(GameConstants.Ach_CompleteEasyLevelKey, 1);
break;
case 1:
AchievementManager.instance.AddAchievementProgress(GameConstants.Ach_CompleteMediumLevelKey, 1);
break;
case 2:
AchievementManager.instance.AddAchievementProgress(GameConstants.Ach_CompleteHardLevelKey, 1);
break;
case 3:
AchievementManager.instance.AddAchievementProgress(GameConstants.Ach_CompleteAdvanceLevelKey, 1);
break;
case 4:
AchievementManager.instance.AddAchievementProgress(GameConstants.Ach_CompleteExpertLevelKey, 1);
break;
}
}
private void ShowRankedUpScreen() private void ShowRankedUpScreen()
{ {
rankedUpPopup.Open(); rankedUpPopup.Open();

@ -104,6 +104,7 @@ public class GameScene : MonoBehaviour
GameManager.Coin += rewardedVideoAmount; GameManager.Coin += rewardedVideoAmount;
UpdateUI(); UpdateUI();
Toast.instance.ShowMessage($"You got {rewardedVideoAmount} free coins"); Toast.instance.ShowMessage($"You got {rewardedVideoAmount} free coins");
AchievementManager.instance.AddAchievementProgress(GameConstants.Ach_Watched10Ads, 1);
} }
public bool debugHints = false; public bool debugHints = false;

Loading…
Cancel
Save