From fd9c016295f8a88a2c1e38d350eafc8b0952f56a Mon Sep 17 00:00:00 2001 From: Guillaume Meinesz <guillaume.meinesz@gmail.com> Date: Thu, 14 Mar 2024 16:37:16 +0100 Subject: [PATCH] 3 changements cf description MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1) En cas de reconnexion après une session, l'utilisateur doit attendre 20mn pour pouvroir lancer la session suivante. Il peut se deconnecter pour laisser la tablette un autre utilisateur. 2) dans le json de structure des sessions/epreuves/items, les attributs d'epreuve "date" et "fin" sont rendus fonctionnels 3) dans les traces, le timestamp du lancement de chaques items est maintenant tracé. 4) si une session ne contient aucune epreuve eligible (en rapport aux dates de fin et date de début) alors l'utilisateurne passe pas par l'écran d'attente et on lui pousse la session qui suit. --- Assets/GestionProgression.cs | 11 +- Assets/NewSystemeDeTraces.cs | 4 +- Assets/Scenes/MainScene.unity | 158 +++++++++++++++- Assets/mainManager.cs | 245 +++++++++++++++++++++++-- ProjectSettings/ProjectSettings.asset | 4 +- UserSettings/Layouts/default-2022.dwlt | 154 ++++++++-------- 6 files changed, 474 insertions(+), 102 deletions(-) diff --git a/Assets/GestionProgression.cs b/Assets/GestionProgression.cs index 85d279ee..48866ab8 100644 --- a/Assets/GestionProgression.cs +++ b/Assets/GestionProgression.cs @@ -12,7 +12,7 @@ public class GestionProgression : MonoBehaviour // Créer un objet contenant les données à sauvegarder, y compris le timestamp actuel - + Debug.Log("SauveProgression forcezero="+ forcezero); // Charger la liste actuelle de sauvegardes ou créer une nouvelle liste si elle n'existe pas encore listDeDonnees sauvegardes = ChargerSauvegardes(); bool foundinside = false; @@ -27,7 +27,16 @@ public class GestionProgression : MonoBehaviour } if (forcezero) { + string AttributBannissement = "bannissement_" + NewSystemeDeTraces.returnUserIDFLuence_or_UserIDHM(); + if (PlayerPrefs.HasKey(AttributBannissement)) + { + PlayerPrefs.SetString(AttributBannissement, ""); + + Debug.Log("AttributBannissement exists and is earased AttributBannissement=" + AttributBannissement); + } + // dd.NumeroSession = 0; + } } } diff --git a/Assets/NewSystemeDeTraces.cs b/Assets/NewSystemeDeTraces.cs index 1f35d49f..c8247334 100644 --- a/Assets/NewSystemeDeTraces.cs +++ b/Assets/NewSystemeDeTraces.cs @@ -56,6 +56,7 @@ public class NewSystemeDeTraces : MonoBehaviour [System.Serializable] public class NewSystemeDeTraces_item { + public string date; public string id; public string[] listeChoix; public float duree; @@ -83,6 +84,7 @@ public class NewSystemeDeTraces : MonoBehaviour jsonContents = File.ReadAllText(jsonFilePath); //mM.texteCheat.text += " un json existe deja length= " + jsonContents.Length; //Debug.Log("Contenu JSON existant : " + jsonContents); + } else { @@ -95,7 +97,6 @@ public class NewSystemeDeTraces : MonoBehaviour if (jsonContents.Length > 0) { traceJson = JsonUtility.FromJson<NewSystemeDeTracesJSONRoot>(jsonContents); - } } @@ -324,6 +325,7 @@ public class NewSystemeDeTraces : MonoBehaviour NewSystemeDeTraces_item newitem = new NewSystemeDeTraces_item(); newitem.id = mM.i.id; + newitem.date = GetFormattedDate() + "-" + GetTimeAsString(); newitem.duree = mM.user_dureeActionOnChoix; newitem.choix = mM.user_choix; newitem.scoreItem = mM.scoreItem; diff --git a/Assets/Scenes/MainScene.unity b/Assets/Scenes/MainScene.unity index 08470122..e3e2db9e 100644 --- a/Assets/Scenes/MainScene.unity +++ b/Assets/Scenes/MainScene.unity @@ -4605,6 +4605,9 @@ MonoBehaviour: modalite: consigne: fond: + condition: + debut: + fin: randomiser: 0 nbItemsMax: 0 items: [] @@ -4658,6 +4661,7 @@ MonoBehaviour: oreilleListenScript: {fileID: 532516272} gestionProg: {fileID: 761270584} clefPourSauvegardeUtilisateur: + texteSessionQuestionNumero: {fileID: 1383918252} boutonDeconnexionText: {fileID: 1304225518} texteFinSession: {fileID: 2130757248} gameObjFin: {fileID: 234776227} @@ -5801,6 +5805,142 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1336072439} m_CullTransparentMesh: 1 +--- !u!1 &1383918250 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1383918251} + - component: {fileID: 1383918253} + - component: {fileID: 1383918252} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1383918251 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1383918250} + 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: 2006134183} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1.02, y: 0.1} + m_AnchorMax: {x: 6, y: 0.99} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0.000005722046, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1383918252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1383918250} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'session : 1/12 + + question : 1/12' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 22.55 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1383918253 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1383918250} + m_CullTransparentMesh: 1 --- !u!1 &1448299096 GameObject: m_ObjectHideFlags: 0 @@ -6184,6 +6324,7 @@ GameObject: - component: {fileID: 2006134186} - component: {fileID: 2006134185} - component: {fileID: 2006134184} + - component: {fileID: 2006134187} m_Layer: 5 m_Name: boutonIEHM m_TagString: Untagged @@ -6202,7 +6343,8 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 1383918251} m_Father: {fileID: 1312748374} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.9} @@ -6304,6 +6446,20 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2006134182} m_CullTransparentMesh: 1 +--- !u!114 &2006134187 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2006134182} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AspectMode: 2 + m_AspectRatio: 1 --- !u!1 &2130757246 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/mainManager.cs b/Assets/mainManager.cs index 458f59ec..f775700e 100644 --- a/Assets/mainManager.cs +++ b/Assets/mainManager.cs @@ -6,6 +6,7 @@ using TMPro; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; +using UnityEngine.Windows; using static ChargementJSONStructure; using static EpreuveCondition; @@ -51,6 +52,11 @@ public class mainManager : MonoBehaviour public listenAnim oreilleListenScript; public GestionProgression gestionProg; public string clefPourSauvegardeUtilisateur; + private int durePauseBannissementEnMinutes = 20; + private bool bannissementIsOn; + private bool bannissementIsOver; + private DateTime bannissementExpirationDateTime; + public TextMeshProUGUI texteSessionQuestionNumero; public class groupemementChoixEtPrefabBoutonQCM { public ChargementJSONStructure.Choix choix; @@ -65,8 +71,8 @@ public class mainManager : MonoBehaviour resetClasse(); currentSession = 0; Time.timeScale = 1.0f; - - + bannissementIsOn = false; + bannissementIsOver = false; // Vérifier si la clé existe dans le dictionnaire clefPourSauvegardeUtilisateur = "gm2024E"; @@ -93,6 +99,34 @@ public class mainManager : MonoBehaviour Debug.Log("CLEF "+ clefPourSauvegardeUtilisateur +" NOT FOUND starting with session N °0"); } toutessessionsacheves = false; + + string AttributBannissement = "bannissement_" + NewSystemeDeTraces.returnUserIDFLuence_or_UserIDHM(); + + if (PlayerPrefs.HasKey(AttributBannissement)) + { + string timestampString = PlayerPrefs.GetString(AttributBannissement); + if (!string.IsNullOrEmpty(timestampString)) + { + DateTime timestampDateTime; + bool parseSuccess = DateTime.TryParseExact(timestampString, "yyyy-MM-dd HH:mm", null, System.Globalization.DateTimeStyles.None, out timestampDateTime); + if (parseSuccess) + { + Debug.Log("Timestamp récupéré : " + timestampDateTime); + bannissementExpirationDateTime = timestampDateTime.AddMinutes(20); + DateTime now = DateTime.Now; + if (now < bannissementExpirationDateTime) + { + bannissementIsOn = true; + } + // Tu peux maintenant utiliser timestampDateTime comme un objet DateTime + } + else + { + Debug.LogError("Erreur lors de la conversion du timestamp."); + } + } + } + s = jsonStructureScript.data.sessions[currentSession]; if (currentSession >= jsonStructureScript.data.sessions.Count) { toutessessionsacheves = true; @@ -109,9 +143,15 @@ public class mainManager : MonoBehaviour i = e.items[currentItem]; ouvrirMenu(false); } + else if (bannissementIsOn) + { + ouvrirMenu(false); + } else { - playSteps(); + //playSteps(); + Debug.Log("nextstep from start function"); + nextEpreuve(true); } } @@ -121,17 +161,26 @@ public class mainManager : MonoBehaviour public void boutonRAZPlayerprefsForthisuserClicked() { + Debug.Log("boutonRAZPlayerprefsForthisuserClicked"); compteurdeclickOnBoutonRAZ++; if (compteurdeclickOnBoutonRAZ >= 15 && compteurdeclickOnBoutonRAZ<20) { deconnexionPlusRAZ = true; boutonDeconnexionText.text = "Déconnecter + RAZ progression"; boutonDeconnexion.SetActive(true); + + if (bannissementIsOn) + { + BoutonnextsessionTexte.text = "Lancer la session"; + boutonSessionSuivante.SetActive(true); + } + } else if (compteurdeclickOnBoutonRAZ >= 20) { deconnexionPlusRAZ = false; boutonDeconnexionText.text = "Déconnecter l'utilisateur sans RAZ progression"; + compteurdeclickOnBoutonRAZ = 0; } } private void resetClasse() @@ -321,7 +370,25 @@ public class mainManager : MonoBehaviour { e.nbItemsMax = e.items.Count; } - + int numsess = currentSession + 1; + texteSessionQuestionNumero.text = "Session N°" + numsess.ToString() + "/" + jsonStructureScript.data.sessions.Count.ToString()+"\n"; + int numiteTotal = 0; + int numIteCurrent = 1; + int indexxeppr = 0; + foreach (Epreuve eee in s.epreuves) + { + if(indexxeppr< currentEpreuve) + { + numIteCurrent += eee.items.Count; + } + else if (indexxeppr== currentEpreuve) + { + numIteCurrent += currentItem; + } + numiteTotal += eee.items.Count; + indexxeppr++; + } + texteSessionQuestionNumero.text += "Question N°" + numIteCurrent.ToString() + "/" + numiteTotal.ToString(); if (!epreuveitemscurrentSet) { epreuvesitemsCurrent = e.items; @@ -373,16 +440,42 @@ public class mainManager : MonoBehaviour return shuffled; } - - public void nextEpreuve() + private bool initialisationFirstEpreuve_EnCours = false; + public void nextEpreuve(bool initialisation=false) { - Debug.Log("nextEpreuve"); - // on regarde s'il y a une autre epreuve dans la m�me session � lancer + if (initialisation) + { + s = jsonStructureScript.data.sessions[currentSession]; + currentEpreuve = -1; + initialisationFirstEpreuve_EnCours = true; + } + + //Debug.Log("s = " + s + " currentEpreuve=" + currentEpreuve); + // on regarde s'il y a une autre epreuve dans la meme session a lancer if (s!=null && currentEpreuve >= s.epreuves.Count - 1) { + if (initialisationFirstEpreuve_EnCours) + { + // il n'y a aucune epreuve de valide dans cette session on regarde si il y a une session suivante + currentSession++; + if(currentSession>= jsonStructureScript.data.sessions.Count) + { + // Dernière session atteinte. Fin du jeu + Debug.Log("Dernière session atteinte. Fin du jeu"); + ouvrirMenu(true); + } + else + { + //on initialise la session suivante existante sur sa premiere epreuve, sans passer par une deconnexion + nextEpreuve(true); + } + } + else + { + ouvrirMenu(true); + } //pas d'autre epreuve dans cette session, on clot la session - Debug.Log("pas d'autre epreuve dans cette session, on clot la session currentEpreuve="+ currentEpreuve+ " s.epreuves.Count="+ s.epreuves.Count); - ouvrirMenu(true); + //Debug.Log("pas d'autre epreuve dans cette session, on clot la session currentEpreuve="+ currentEpreuve+ " s.epreuves.Count="+ s.epreuves.Count); } else { @@ -393,11 +486,13 @@ public class mainManager : MonoBehaviour currentItem = 0; epreuveConsignebeenPlayed = false; current_step = -1; + initialisationFirstEpreuve_EnCours = false; resetItem(); playSteps(); } else { + Debug.Log("next epreuve from next epreuve"); nextEpreuve(); } } @@ -405,8 +500,55 @@ public class mainManager : MonoBehaviour public bool playableEpreuve(Epreuve test_ep) { - EpreuveCondition cond = new EpreuveCondition(test_ep); - return cond.eval(); + Debug.Log("testing playableEpreuve id="+test_ep.id+" titre ="+test_ep.titre); + bool epreuveIsPlayable = true; + DateTime dateNow = DateTime.Now; + DateTime dateTime; + if (test_ep!=null && test_ep.debut!=null && test_ep.debut.Length > 0) + { + if (DateTime.TryParse(test_ep.debut, out dateTime)) + { + if(dateTime > dateNow) + { + Debug.Log("dateTime debut ="+ dateTime+" exceeds dateNow="+ dateNow); + epreuveIsPlayable = false; + } + } + else + { + Debug.Log("debut value does not match a valid date"); + + } + } + else + { + Debug.Log("this epreuve does not have a debut value"); + } + if (test_ep != null && test_ep.fin != null && test_ep.fin.Length > 0) + { + if (DateTime.TryParse(test_ep.fin, out dateTime)) + { + if (dateTime < dateNow) + { + epreuveIsPlayable = false; + Debug.Log("dateTime fin =" + dateTime + " bellow dateNow=" + dateNow); + + } + } + else + { + Debug.Log("end value does not match a valid date"); + + } + } + else + { + Debug.Log("this epreuve does not have an end value"); + + } + Debug.Log("epreuveIsPlayable="+ epreuveIsPlayable); + + return epreuveIsPlayable; } @@ -466,6 +608,29 @@ public class mainManager : MonoBehaviour // reveil } } + if (bannissementIsOn) + { + DateTime now = DateTime.Now; + + // Vérifie si la date actuelle est antérieure à la date d'expiration + if (now < bannissementExpirationDateTime) + { + // Calcule la durée restante jusqu'à la reprise + TimeSpan tempsRestant = bannissementExpirationDateTime - now; + + // Affiche le temps restant + BoutonsessionActuelleTexte.text = "Utilisateur en pause. Reprise possible dans "+ tempsRestant.Minutes + " minutes et "+ tempsRestant.Seconds + " secondes"; + } + else + { + BoutonsessionActuelleTexte.text = "Pause terminée. Lancer la session"; + boutonDeconnexion.SetActive(false); + bannissementIsOn = false; + bannissementIsOver = true; + Debug.Log("La pause a déjà expiré."); + } + + } } private void reveilDone() @@ -718,29 +883,30 @@ public class mainManager : MonoBehaviour bool nbitempassesReached = false; int nbItemsTotauxDansCetteSession = 0; + int indexepreuveParsed = 0; foreach (Epreuve epp in s.epreuves) { + int indexItemParsed = 0; foreach (EpreuveItem eii in epp.items) { - - if (!nbitempassesReached) { nbItemsPasses++; } nbItemsTotauxDansCetteSession++; - if (eii == i) + if (indexepreuveParsed > currentEpreuve || (indexepreuveParsed >= currentEpreuve && indexItemParsed >= currentItem)) { nbitempassesReached = true; } + indexItemParsed++; } + indexepreuveParsed++; } int maxsession = jsonStructureScript.data.sessions.Count - 1; int maxepreuve = jsonStructureScript.data.sessions[maxsession].epreuves.Count - 1; int maxitem = jsonStructureScript.data.sessions[maxsession].epreuves[maxepreuve].items.Count - 1; - Debug.Log("nbItemsPasses = " + nbItemsPasses + " nbItemsTotauxDansCetteSession=" + nbItemsTotauxDansCetteSession + " i.id=" + i.id + " e.id=" + e.id); infoSessionItemEnCours.text += "\n\nQuestion\nN°" + nbItemsPasses.ToString() + "/" + nbItemsTotauxDansCetteSession.ToString(); if (i == jsonStructureScript.data.sessions[maxsession].epreuves[maxepreuve].items[maxitem]) @@ -786,19 +952,45 @@ public class mainManager : MonoBehaviour boutonSessionEnCours.SetActive(false); boutonDeconnexion.SetActive(true); } + if (bannissementIsOn) + { + boutonDeconnexion.SetActive(true); + + } } } public void clicRetourSessionEnCOurs() { - Time.timeScale = 1.0f; - Debug.Log("clicRetourSessionEnCOurs"); - gameObjFin.SetActive(false); + if (!bannissementIsOn) + { + Time.timeScale = 1.0f; + Debug.Log("clicRetourSessionEnCOurs"); + gameObjFin.SetActive(false); + if (bannissementIsOver) + { + bannissementIsOver = false; + nextEpreuve(true); + + } + } } public void clicSessionSuivante() { + if (bannissementIsOn) + { + bannissementIsOn = false; + string AttributBannissement = "bannissement_" + NewSystemeDeTraces.returnUserIDFLuence_or_UserIDHM(); + if (PlayerPrefs.HasKey(AttributBannissement)) + { + PlayerPrefs.SetString(AttributBannissement, ""); + PlayerPrefs.Save(); + } + boutonSessionSuivante.SetActive(false); + nextEpreuve(true); + } /* Debug.Log("clicSessionSuivante"); resetItem(); @@ -815,6 +1007,7 @@ public class mainManager : MonoBehaviour gameObjFin.SetActive(false);*/ } + private bool deconnexionViaClickBoutonDeconnexion; public void deconnexion() { Debug.Log("deconnexion"); @@ -823,20 +1016,32 @@ public class mainManager : MonoBehaviour boutonSessionSuivante.SetActive(false); boutonSessionEnCours.SetActive(false); boutonDeconnexion.SetActive(false); + deconnexionViaClickBoutonDeconnexion = true; StartCoroutine(terminateScene()); //texteFinSession.text = "FIN DE SESSION / Envoi des traces au serveur en cours..."; } public void launchTerminateScene() { + deconnexionViaClickBoutonDeconnexion = false; StartCoroutine(terminateScene()); } public IEnumerator terminateScene() { + Debug.Log("terminateScene deconnexionPlusRAZ="+ deconnexionPlusRAZ); if (deconnexionPlusRAZ) { gestionProg.SauveProgression(0, true); - + } + else if (!deconnexionViaClickBoutonDeconnexion) + { + // on enregistre dans les playerprefs une ref à ce userlogin+teachercode+timestamp à la minuté près pour le bannir + string AttributBannissement = "bannissement_" + NewSystemeDeTraces.returnUserIDFLuence_or_UserIDHM(); + DateTime currentTime = DateTime.Now; + string timestampString = currentTime.ToString("yyyy-MM-dd HH:mm"); + PlayerPrefs.SetString(AttributBannissement, timestampString); + PlayerPrefs.Save(); + // Sauvegarde des modifica } Time.timeScale = 1.0f; Debug.Log("terminateScene"); diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 1f41c2eb..b5a3c744 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -136,7 +136,7 @@ PlayerSettings: vulkanEnableLateAcquireNextImage: 0 vulkanEnableCommandBufferRecycling: 1 loadStoreDebugModeEnabled: 0 - bundleVersion: 1.14 + bundleVersion: 1.15 preloadedAssets: [] metroInputSource: 0 wsaTransparentSwapchain: 0 @@ -166,7 +166,7 @@ PlayerSettings: iPhone: 0 tvOS: 0 overrideDefaultApplicationIdentifier: 1 - AndroidBundleVersionCode: 6 + AndroidBundleVersionCode: 7 AndroidMinSdkVersion: 22 AndroidTargetSdkVersion: 0 AndroidPreferredInstallLocation: 1 diff --git a/UserSettings/Layouts/default-2022.dwlt b/UserSettings/Layouts/default-2022.dwlt index 48be7dbe..dd916130 100644 --- a/UserSettings/Layouts/default-2022.dwlt +++ b/UserSettings/Layouts/default-2022.dwlt @@ -19,7 +19,7 @@ MonoBehaviour: width: 1536 height: 772.8 m_ShowMode: 4 - m_Title: Project + m_Title: Game m_RootView: {fileID: 2} m_MinSize: {x: 875, y: 300} m_MaxSize: {x: 10000, y: 10000} @@ -119,7 +119,7 @@ MonoBehaviour: m_MinSize: {x: 300, y: 100} m_MaxSize: {x: 24288, y: 16192} vertical: 0 - controlID: 122 + controlID: 49 --- !u!114 &6 MonoBehaviour: m_ObjectHideFlags: 52 @@ -139,12 +139,12 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 1431.2 + width: 1228.8 height: 722.8 m_MinSize: {x: 200, y: 100} m_MaxSize: {x: 16192, y: 16192} vertical: 1 - controlID: 41 + controlID: 50 --- !u!114 &7 MonoBehaviour: m_ObjectHideFlags: 52 @@ -164,12 +164,12 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 1431.2 - height: 402.4 + width: 1228.8 + height: 485.6 m_MinSize: {x: 200, y: 50} m_MaxSize: {x: 16192, y: 8096} vertical: 0 - controlID: 42 + controlID: 40 --- !u!114 &8 MonoBehaviour: m_ObjectHideFlags: 52 @@ -187,8 +187,8 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 388 - height: 402.4 + width: 292 + height: 485.6 m_MinSize: {x: 201, y: 221} m_MaxSize: {x: 4001, y: 4021} m_ActualView: {fileID: 13} @@ -206,23 +206,23 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 1 m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: SceneView + m_Name: GameView m_EditorClassIdentifier: m_Children: [] m_Position: serializedVersion: 2 - x: 388 + x: 292 y: 0 - width: 1043.2 - height: 402.4 + width: 936.80005 + height: 485.6 m_MinSize: {x: 202, y: 221} m_MaxSize: {x: 4002, y: 4021} - m_ActualView: {fileID: 14} + m_ActualView: {fileID: 12} m_Panes: - {fileID: 14} - {fileID: 12} - m_Selected: 0 - m_LastSelected: 1 + m_Selected: 1 + m_LastSelected: 0 --- !u!114 &10 MonoBehaviour: m_ObjectHideFlags: 52 @@ -233,23 +233,23 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 1 m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: ProjectBrowser + m_Name: ConsoleWindow m_EditorClassIdentifier: m_Children: [] m_Position: serializedVersion: 2 x: 0 - y: 402.4 - width: 1431.2 - height: 320.4 - m_MinSize: {x: 231, y: 271} - m_MaxSize: {x: 10001, y: 10021} - m_ActualView: {fileID: 15} + y: 485.6 + width: 1228.8 + height: 237.19998 + m_MinSize: {x: 101, y: 121} + m_MaxSize: {x: 4001, y: 4021} + m_ActualView: {fileID: 16} m_Panes: - {fileID: 15} - {fileID: 16} - m_Selected: 0 - m_LastSelected: 1 + m_Selected: 1 + m_LastSelected: 0 --- !u!114 &11 MonoBehaviour: m_ObjectHideFlags: 52 @@ -265,12 +265,12 @@ MonoBehaviour: m_Children: [] m_Position: serializedVersion: 2 - x: 1431.2 + x: 1228.8 y: 0 - width: 104.80005 + width: 307.19995 height: 722.8 - m_MinSize: {x: 276, y: 71} - m_MaxSize: {x: 4001, y: 4021} + m_MinSize: {x: 275, y: 50} + m_MaxSize: {x: 4000, y: 4000} m_ActualView: {fileID: 17} m_Panes: - {fileID: 17} @@ -296,10 +296,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 388 + x: 292 y: 73.6 - width: 1041.2 - height: 381.4 + width: 934.80005 + height: 464.6 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -316,7 +316,7 @@ MonoBehaviour: m_ShowGizmos: 0 m_TargetDisplay: 0 m_ClearColor: {r: 0, g: 0, b: 0, a: 0} - m_TargetSize: {x: 1301.5, y: 450.5} + m_TargetSize: {x: 1168.5, y: 554.5} m_TextureFilterMode: 0 m_TextureHideFlags: 61 m_RenderIMGUI: 1 @@ -331,10 +331,10 @@ MonoBehaviour: m_VRangeLocked: 0 hZoomLockedByDefault: 0 vZoomLockedByDefault: 0 - m_HBaseRangeMin: -520.60004 - m_HBaseRangeMax: 520.60004 - m_VBaseRangeMin: -180.2 - m_VBaseRangeMax: 180.2 + m_HBaseRangeMin: -467.4 + m_HBaseRangeMax: 467.4 + m_VBaseRangeMin: -221.8 + m_VBaseRangeMax: 221.8 m_HAllowExceedBaseRangeMin: 1 m_HAllowExceedBaseRangeMax: 1 m_VAllowExceedBaseRangeMin: 1 @@ -352,23 +352,23 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 21 - width: 1041.2 - height: 360.4 - m_Scale: {x: 0.9999999, y: 0.99999994} - m_Translation: {x: 520.6, y: 180.2} + width: 934.80005 + height: 443.6 + m_Scale: {x: 1, y: 1} + m_Translation: {x: 467.40002, y: 221.8} m_MarginLeft: 0 m_MarginRight: 0 m_MarginTop: 0 m_MarginBottom: 0 m_LastShownAreaInsideMargins: serializedVersion: 2 - x: -520.60004 - y: -180.20001 - width: 1041.2001 - height: 360.40002 + x: -467.40002 + y: -221.8 + width: 934.80005 + height: 443.6 m_MinimalGUI: 1 - m_defaultScale: 0.9999999 - m_LastWindowPixelSize: {x: 1301.5, y: 476.75} + m_defaultScale: 1 + m_LastWindowPixelSize: {x: 1168.5, y: 580.75} m_ClearInEditMode: 1 m_NoCameraWarning: 1 m_LowResolutionForAspectRatios: 01000000000000000000 @@ -396,8 +396,8 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 73.6 - width: 387 - height: 381.4 + width: 291 + height: 464.6 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -411,9 +411,9 @@ MonoBehaviour: m_SceneHierarchy: m_TreeViewState: scrollPos: {x: 0, y: 0} - m_SelectedIDs: + m_SelectedIDs: 3cb90000 m_LastClickedID: 0 - m_ExpandedIDs: 9af4f9ffdef4f9ff6c15faff9e17faffb217faffd070faff4e77faff3078faffd27cfaff167dfaffd09efaff30a2faff4ca2faff9890fbff38b1fbff5206fcff0429fcffde2ffcffda97fcff1e98fcffacb8fcffdebafcfff2bafcfff41afdff245bfdffe8e2fdff1ce9fdff60e9fdff1a0bfeff7a0efeff960efeff0610feffa63dfeffa864feff9680feff4290feffaa2cffffd835ffff48daffff04fbffff389c0000849c00008e9c0000989c0000aa9c0000c2c5010038c6010028800300269e0300fc8b0400008c0400768c04007821080026810900b0810900c8840900f28f0900849009003a9c09003e9c0900989c0900b49c090080f70900faf70900f4100b00062e0b00 + m_ExpandedIDs: 4e41fdffbe62fdffdcd3fdff6813feffd435feff0063feff5c68feff5488feff10a9feff6eaefeff2cdcfeffa4a6ffffe2ceffff0cd4ffffe6f4ffff16fbffff5ac4000038a801006ca80100aec80100eac80100e2e701001ee80100f622020032230200ee2302002a240200 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -457,10 +457,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 388 + x: 409.6 y: 73.6 - width: 1041.2 - height: 381.4 + width: 649.2001 + height: 464.6 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -475,8 +475,8 @@ MonoBehaviour: floating: 0 collapsed: 0 displayed: 1 - snapOffset: {x: -156, y: -26.400024} - snapOffsetDelta: {x: -14.400024, y: 0} + snapOffset: {x: -164.79999, y: -26.400024} + snapOffsetDelta: {x: 0, y: 0} snapCorner: 3 id: Tool Settings index: 0 @@ -806,9 +806,9 @@ MonoBehaviour: m_PlayAudio: 0 m_AudioPlay: 0 m_Position: - m_Target: {x: 620.1211, y: 334.8517, z: 1.8107476} + m_Target: {x: 1210.7328, y: -188.23718, z: 0} speed: 2 - m_Value: {x: 620.1211, y: 334.8517, z: 1.8107476} + m_Value: {x: 1210.7328, y: -188.23718, z: 0} m_RenderMode: 0 m_CameraMode: drawMode: 0 @@ -858,9 +858,9 @@ MonoBehaviour: speed: 2 m_Value: {x: 0, y: 0, z: 0, w: 1} m_Size: - m_Target: 372.46674 + m_Target: 1544.8628 speed: 2 - m_Value: 372.46674 + m_Value: 1544.8628 m_Ortho: m_Target: 1 speed: 2 @@ -906,9 +906,9 @@ MonoBehaviour: m_Pos: serializedVersion: 2 x: 0 - y: 476 - width: 1430.2 - height: 299.4 + y: 559.2 + width: 1032.6 + height: 216.19998 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -930,7 +930,7 @@ MonoBehaviour: m_SkipHidden: 0 m_SearchArea: 1 m_Folders: - - Assets + - Assets/Scenes m_Globs: [] m_OriginalText: m_ImportLogFlags: 0 @@ -938,16 +938,16 @@ MonoBehaviour: m_ViewMode: 1 m_StartGridSize: 64 m_LastFolders: - - Assets + - Assets/Scenes m_LastFoldersGridSize: -1 m_LastProjectPath: C:\Users\guill\OneDrive\Bureau\LUCIOLE\EVALULULU_DEC2023_2\lulu-testing m_LockTracker: m_IsLocked: 0 m_FolderTreeState: scrollPos: {x: 0, y: 79} - m_SelectedIDs: ba9b0000 - m_LastClickedID: 39866 - m_ExpandedIDs: 00000000ba9b0000bc9b0000be9b000000ca9a3bffffff7f + m_SelectedIDs: 34b90000 + m_LastClickedID: 47412 + m_ExpandedIDs: 00000000566300005863000038b9000000ca9a3b m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -975,7 +975,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} m_SelectedIDs: m_LastClickedID: 0 - m_ExpandedIDs: 00000000ba9b0000bc9b0000be9b0000 + m_ExpandedIDs: 000000005663000058630000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -1000,9 +1000,9 @@ MonoBehaviour: m_Icon: {fileID: 0} m_ResourceFile: m_ListAreaState: - m_SelectedInstanceIDs: - m_LastClickedInstanceID: 0 - m_HadKeyboardFocusLastEvent: 0 + m_SelectedInstanceIDs: 3cb90000 + m_LastClickedInstanceID: 47420 + m_HadKeyboardFocusLastEvent: 1 m_ExpandedInstanceIDs: c6230000 m_RenameOverlay: m_UserAcceptedRename: 0 @@ -1052,9 +1052,9 @@ MonoBehaviour: m_Pos: serializedVersion: 2 x: 0 - y: 476 - width: 1430.2 - height: 299.4 + y: 559.2 + width: 1227.8 + height: 216.19998 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -1085,9 +1085,9 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 1431.2001 + x: 1228.8 y: 73.6 - width: 103.80005 + width: 306.19995 height: 701.8 m_SerializedDataModeController: m_DataMode: 0 -- GitLab