Compare commits

..

No commits in common. "0dbc959c190cca08077f00f412a66505b8975349" and "ed5d3cd222abf17e8aae0168f81e0e4cde36d6b1" have entirely different histories.

81 changed files with 140 additions and 328 deletions

38
Assets/LevelLoader.cs Normal file
View File

@ -0,0 +1,38 @@
using UnityEngine;
using UnityEngine.UI;
using System.IO;
using System.Text.Json;
public class LevelLoader : MonoBehaviour
{
[SerializeField]
public Text levelNameText;
void Start()
{
levelNameText.text = "Coucou";
string filePath = "level.json";
if (File.Exists(filePath))
{
string json = File.ReadAllText(filePath);
Level level = JsonSerializer.Deserialize<Level>(json, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
Console.WriteLine($"Name: {level.Name}");
Console.WriteLine($"MusicPath: {level.MusicPath}");
Console.WriteLine($"TotalJumps: {level.TotalJumps}");
Console.WriteLine($"TotalAttempts: {level.TotalAttempts}");
Console.WriteLine($"KilledCount: {level.KilledCount}");
}
else
{
Console.WriteLine("JSON file not found.");
}
}
void Update()
{
}
}

View File

@ -1,9 +1,6 @@
{
"name": "Back on Track",
"musicName": "BackOnTrack",
"totalJumps": 0,
"totalAttempts": 0,
"order": 2,
"music": "",
"elements": [
{
"type": "Spike",

View File

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

View File

@ -1,16 +0,0 @@
{
"name": "Stereo Madness",
"musicName": "StereoMadness",
"totalJumps": 0,
"totalAttempts": 0,
"order": 1,
"elements": [
{
"type": "Spike",
"position": {
"x": 0,
"y": 0
}
}
]
}

View File

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

View File

@ -642,50 +642,6 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1832520161
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1832520163}
- component: {fileID: 1832520162}
m_Layer: 0
m_Name: LevelsLoader
m_TagString: LevelsLoader
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1832520162
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1832520161}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4c3543e79f987af40bbd4a51c0a334c3, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &1832520163
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1832520161}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1888054985
GameObject:
m_ObjectHideFlags: 0
@ -930,4 +886,3 @@ SceneRoots:
- {fileID: 1888054988}
- {fileID: 481473977}
- {fileID: 948896768}
- {fileID: 1832520163}

View File

@ -5581,7 +5581,6 @@ MonoBehaviour:
rigidBody: {fileID: 1267397456}
playerObject: {fileID: 1267397455}
particle: {fileID: 725779776}
levelsLoader: {fileID: 0}
isColliding: 1
audioSource: {fileID: 1267397461}
--- !u!61 &1267397460
@ -5643,7 +5642,7 @@ AudioSource:
m_audioClip: {fileID: 8300000, guid: 681525f18aa52594aa45865f4c54b61a, type: 3}
m_Resource: {fileID: 8300000, guid: 681525f18aa52594aa45865f4c54b61a, type: 3}
m_PlayOnAwake: 1
m_Volume: 0.5
m_Volume: 1
m_Pitch: 1
Loop: 0
Mute: 0

View File

@ -131,7 +131,6 @@ GameObject:
- component: {fileID: 1255459}
- component: {fileID: 1255458}
- component: {fileID: 1255457}
- component: {fileID: 1255460}
m_Layer: 5
m_Name: Level
m_TagString: Untagged
@ -203,8 +202,8 @@ MonoBehaviour:
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1255460}
m_TargetAssemblyTypeName: LevelNameButton, Assembly-CSharp
- m_Target: {fileID: 1170341696}
m_TargetAssemblyTypeName: SelectLevelMenu, Assembly-CSharp
m_MethodName: PlayLevel
m_Mode: 1
m_Arguments:
@ -253,18 +252,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1255455}
m_CullTransparentMesh: 1
--- !u!114 &1255460
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1255455}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3617637b5b720115a8f1a856cb43f8a5, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &91128433
GameObject:
m_ObjectHideFlags: 0
@ -435,8 +422,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -7.8890953, y: 0}
m_SizeDelta: {x: -15.778, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &253164522
MonoBehaviour:
@ -458,7 +445,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Previous
m_text: Last
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
@ -523,7 +510,7 @@ MonoBehaviour:
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: -13.6918335, w: 0}
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
@ -626,8 +613,8 @@ GameObject:
m_Component:
- component: {fileID: 954359121}
- component: {fileID: 954359123}
- component: {fileID: 954359124}
- component: {fileID: 954359125}
- component: {fileID: 954359124}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
@ -705,10 +692,9 @@ MonoBehaviour:
m_GameObject: {fileID: 954359120}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b9d2aa88c034d40f187d6ff84705da65, type: 3}
m_Script: {fileID: 11500000, guid: 4c3543e79f987af40bbd4a51c0a334c3, type: 3}
m_Name:
m_EditorClassIdentifier:
levelsLoader: {fileID: 0}
levelNameText: {fileID: 954359124}
--- !u!1 &976210033
GameObject:
@ -722,9 +708,8 @@ GameObject:
- component: {fileID: 976210037}
- component: {fileID: 976210036}
- component: {fileID: 976210035}
- component: {fileID: 976210038}
m_Layer: 5
m_Name: PreviousButton
m_Name: LastLevel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -747,8 +732,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -369.9035, y: 0}
m_SizeDelta: {x: 114.9513, y: 51.8448}
m_AnchoredPosition: {x: -389, y: 0}
m_SizeDelta: {x: 76.7583, y: 51.8448}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &976210035
MonoBehaviour:
@ -794,9 +779,9 @@ MonoBehaviour:
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 976210038}
m_TargetAssemblyTypeName: LevelPreviousButton, Assembly-CSharp
m_MethodName: PreviousLevel
- m_Target: {fileID: 1170341696}
m_TargetAssemblyTypeName: SelectLevelMenu, Assembly-CSharp
m_MethodName: LastLevel
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
@ -844,18 +829,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 976210033}
m_CullTransparentMesh: 1
--- !u!114 &976210038
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 976210033}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2c53cba3260b30d02b79e69a3198546c, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1094616661
GameObject:
m_ObjectHideFlags: 0
@ -938,7 +911,7 @@ MonoBehaviour:
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 0}
- m_Target: {fileID: 1170341696}
m_TargetAssemblyTypeName: SelectLevelMenu, Assembly-CSharp
m_MethodName: LevelStatsBtn
m_Mode: 1
@ -1000,9 +973,8 @@ GameObject:
- component: {fileID: 1099679060}
- component: {fileID: 1099679059}
- component: {fileID: 1099679058}
- component: {fileID: 1099679061}
m_Layer: 5
m_Name: HomeButton
m_Name: Back
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -1071,9 +1043,9 @@ MonoBehaviour:
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1099679061}
m_TargetAssemblyTypeName: LevelHomeButton, Assembly-CSharp
m_MethodName: GoToHome
- m_Target: {fileID: 1170341696}
m_TargetAssemblyTypeName: SelectLevelMenu, Assembly-CSharp
m_MethodName: BackBtn
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
@ -1121,18 +1093,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1099679056}
m_CullTransparentMesh: 1
--- !u!114 &1099679061
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1099679056}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ef2acea012085a3bb9a981fc334afaec, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1153106988
GameObject:
m_ObjectHideFlags: 0
@ -1145,6 +1105,7 @@ GameObject:
- component: {fileID: 1153106992}
- component: {fileID: 1153106991}
- component: {fileID: 1153106990}
- component: {fileID: 1153106993}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
@ -1241,6 +1202,19 @@ Canvas:
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &1153106993
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1153106988}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 78914afaa50342f4fbc6b2f0d1a6c036, type: 3}
m_Name:
m_EditorClassIdentifier:
levelNameText: {fileID: 0}
--- !u!1 &1170341692
GameObject:
m_ObjectHideFlags: 0
@ -1252,9 +1226,10 @@ GameObject:
- component: {fileID: 1170341695}
- component: {fileID: 1170341694}
- component: {fileID: 1170341693}
- component: {fileID: 1170341696}
m_Layer: 0
m_Name: Main Camera
m_TagString: LevelLoader
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
@ -1334,6 +1309,19 @@ Transform:
- {fileID: 1153106989}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1170341696
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1170341692}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 78914afaa50342f4fbc6b2f0d1a6c036, type: 3}
m_Name:
m_EditorClassIdentifier:
levelNameText: {fileID: 0}
--- !u!1 &1174740937
GameObject:
m_ObjectHideFlags: 0
@ -1618,9 +1606,8 @@ GameObject:
- component: {fileID: 1364527285}
- component: {fileID: 1364527284}
- component: {fileID: 1364527283}
- component: {fileID: 1364527286}
m_Layer: 5
m_Name: NextButton
m_Name: NextLevel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -1690,8 +1677,8 @@ MonoBehaviour:
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1364527286}
m_TargetAssemblyTypeName: LevelNextButton, Assembly-CSharp
- m_Target: {fileID: 1170341696}
m_TargetAssemblyTypeName: SelectLevelMenu, Assembly-CSharp
m_MethodName: NextLevel
m_Mode: 1
m_Arguments:
@ -1740,18 +1727,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1364527281}
m_CullTransparentMesh: 1
--- !u!114 &1364527286
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1364527281}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c34ef065650ba0802be580828cc0d474, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0

View File

@ -1,6 +1,6 @@
using UnityEngine;
public class PlayerCamera : MonoBehaviour
public class CameraScript : MonoBehaviour
{
public GameObject playerObject;

View File

@ -1,16 +1,16 @@
using UnityEngine;
using System.Runtime.Serialization;
[System.Serializable]
[DataContract]
public class Level
{
public string name;
public string musicName;
public int totalJumps;
public int totalAttempts;
public int order;
[DataMember]
public string Name { get; set; }
public static Level CreateFromJSON(string jsonString)
{
return JsonUtility.FromJson<Level>(jsonString);
}
[DataMember]
public string MusicPath { get; set; }
[DataMember]
public int TotalJumps { get; set; }
public int TotalAttempts { get; set; }
public int KilledCount { get; set; }
}

View File

@ -1,57 +0,0 @@
using UnityEngine;
using System.Collections.Generic;
using System.IO;
public class LevelsLoader : MonoBehaviour
{
public List<Level> levels = new();
public Level levelCurrent;
private void Start()
{
DontDestroyOnLoad(gameObject);
LoadAllLevels();
levelCurrent = levels[0];
}
private void LoadAllLevels()
{
TextAsset[] levelFiles = Resources.LoadAll<TextAsset>("Levels");
foreach (TextAsset jsonTextFile in levelFiles)
{
Level loadedLevel = JsonUtility.FromJson<Level>(jsonTextFile.text);
levels.Add(loadedLevel);
}
levels.Sort((x, y) => x.order.CompareTo(y.order));
}
private void SaveLevelCurrent()
{
string json = JsonUtility.ToJson(levelCurrent, true);
File.WriteAllText(Path.Combine(Application.dataPath, "Resources", "Levels", levelCurrent.name + ".json"), json);
}
public void NextLevel()
{
int currentIndex = levels.IndexOf(levelCurrent);
levelCurrent = levels[(currentIndex + 1) % levels.Count];
}
public void PreviousLevel()
{
int currentIndex = levels.IndexOf(levelCurrent);
levelCurrent = levels[(currentIndex - 1 + levels.Count) % levels.Count];
}
public void IncreaseTotalJumps()
{
levelCurrent.totalJumps += 1;
SaveLevelCurrent();
}
public void IncreaseTotalAttempts()
{
levelCurrent.totalAttempts += 1;
SaveLevelCurrent();
}
}

View File

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

View File

@ -1,10 +0,0 @@
using UnityEngine;
using UnityEngine.SceneManagement;
public class LevelHomeButton : MonoBehaviour
{
public void GoToHome()
{
SceneManager.LoadScene("HomeScene");
}
}

View File

@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: ef2acea012085a3bb9a981fc334afaec

View File

@ -1,10 +0,0 @@
using UnityEngine;
using UnityEngine.SceneManagement;
public class LevelNameButton : MonoBehaviour
{
public void PlayLevel()
{
SceneManager.LoadScene("LevelScene");
}
}

View File

@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 3617637b5b720115a8f1a856cb43f8a5

View File

@ -1,19 +0,0 @@
using UnityEngine;
using UnityEngine.UI;
public class LevelNameText : MonoBehaviour
{
public Text levelNameText;
public LevelsLoader levelsLoader;
public void Start()
{
levelsLoader = GameObject.FindGameObjectWithTag("LevelsLoader").GetComponent<LevelsLoader>();
levelNameText.text = levelsLoader.levelCurrent.name;
}
public void Update()
{
levelNameText.text = levelsLoader.levelCurrent.name;
}
}

View File

@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: b9d2aa88c034d40f187d6ff84705da65

View File

@ -1,16 +0,0 @@
using UnityEngine;
public class LevelNextButton : MonoBehaviour
{
public LevelsLoader levelsLoader;
public void Start()
{
levelsLoader = GameObject.FindGameObjectWithTag("LevelsLoader").GetComponent<LevelsLoader>();
}
public void NextLevel()
{
levelsLoader.NextLevel();
}
}

View File

@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: c34ef065650ba0802be580828cc0d474

View File

@ -1,16 +0,0 @@
using UnityEngine;
public class LevelPreviousButton : MonoBehaviour
{
public LevelsLoader levelsLoader;
public void Start()
{
levelsLoader = GameObject.FindGameObjectWithTag("LevelsLoader").GetComponent<LevelsLoader>();
}
public void PreviousLevel()
{
levelsLoader.PreviousLevel();
}
}

View File

@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 2c53cba3260b30d02b79e69a3198546c

View File

@ -1,13 +1,11 @@
using UnityEngine;
using UnityEngine.SceneManagement;
using System.IO;
public class Player : MonoBehaviour
public class PlayerScript : MonoBehaviour
{
public Rigidbody2D rigidBody;
public GameObject playerObject;
public ParticleSystem particle;
public LevelsLoader levelsLoader;
public bool isColliding = true;
public AudioSource audioSource;
@ -17,12 +15,6 @@ public class Player : MonoBehaviour
public void Start()
{
levelsLoader = GameObject.FindGameObjectWithTag("LevelsLoader").GetComponent<LevelsLoader>();
levelsLoader.IncreaseTotalAttempts();
audioSource.clip = Resources.Load<AudioClip>(Path.Combine("Musics", levelsLoader.levelCurrent.musicName));
audioSource.Play();
var mainModule = particle.main;
mainModule.simulationSpace = ParticleSystemSimulationSpace.World;
particle.transform.parent = null;
@ -63,7 +55,6 @@ public class Player : MonoBehaviour
{
rigidBody.linearVelocity = new Vector2(rigidBody.linearVelocity.x, 0);
rigidBody.AddForce(Vector2.up * 26.6581f, ForceMode2D.Impulse);
levelsLoader.IncreaseTotalJumps();
}
private bool IsJumping()

33
Assets/SelectLevelMenu.cs Normal file
View File

@ -0,0 +1,33 @@
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class SelectLevelMenu : MonoBehaviour
{
public Text levelNameText;
public void PlayLevel()
{
SceneManager.LoadScene("LevelScene");
}
public void BackBtn()
{
SceneManager.LoadScene("HomeScene");
}
public void LastLevel()
{
// TODO
}
public void NextLevel()
{
// TODO
}
public void LevelStatsBtn()
{
// SceneManager.LoadSceneAsync(?);
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 78914afaa50342f4fbc6b2f0d1a6c036

View File

@ -17,7 +17,7 @@ class GameManager {
class Level {
- name: String
- musicName: String
- musicPath: String
+ StartLevel()
+ EndLevel()
+ CheckCompletion(): Boolean

View File

@ -6,7 +6,6 @@ TagManager:
tags:
- Kill
- Win
- LevelsLoader
layers:
- Default
- TransparentFX