Bien qu’ Unity3D soit très stable, une précaution n’est jamais inutile, ce script AutoSave.cs va vous permettre de paramétrer dans votre projet une sauvegarde automatique a interval régulier.
Le script que vous pouvez trouver en fin d’article doit être créer dans le dossier « Editor » de votre projet UNITY3D. Si il n’existe pas il suffit simplement de le créer.
Vous pouvez accéder au paramètre de sauvegarde Automatique depuis le menu Windows d’ Unity.
Ci dessous le script AutoSave.cs, l’ asset a importer dans votre projet est téléchargeable ici (AutoSave Unity).
using UnityEngine; using UnityEditor; using System; public class AutoSave : EditorWindow { private bool autoSaveScene = true; private bool showMessage = true; private bool isStarted = false; private int intervalScene; private DateTime lastSaveTimeScene = DateTime.Now; private string projectPath = Application.dataPath; private string scenePath; [MenuItem("Window/AutoSave")] static void Init() { AutoSave saveWindow = (AutoSave)EditorWindow.GetWindow(typeof(AutoSave)); saveWindow.Show(); } void OnGUI() { GUILayout.Label("Info:", EditorStyles.boldLabel); EditorGUILayout.LabelField("Saving to:", "" + projectPath); EditorGUILayout.LabelField("Saving scene:", "" + scenePath); GUILayout.Label("Options:", EditorStyles.boldLabel); autoSaveScene = EditorGUILayout.BeginToggleGroup("Auto save", autoSaveScene); intervalScene = EditorGUILayout.IntSlider("Interval (minutes)", intervalScene, 1, 10); if (isStarted) { EditorGUILayout.LabelField("Last save:", "" + lastSaveTimeScene); } EditorGUILayout.EndToggleGroup(); showMessage = EditorGUILayout.BeginToggleGroup("Show Message", showMessage); EditorGUILayout.EndToggleGroup(); } void Update() { scenePath = EditorApplication.currentScene; if (autoSaveScene) { if (DateTime.Now.Minute >= (lastSaveTimeScene.Minute + intervalScene) || DateTime.Now.Minute == 59 && DateTime.Now.Second == 59) { saveScene(); } } else { isStarted = false; } } void saveScene() { EditorApplication.SaveScene(scenePath); lastSaveTimeScene = DateTime.Now; isStarted = true; if (showMessage) { Debug.Log("AutoSave saved: " + scenePath + " on " + lastSaveTimeScene); } AutoSave repaintSaveWindow = (AutoSave)EditorWindow.GetWindow(typeof(AutoSave)); repaintSaveWindow.Repaint(); } }
Salut merci pour se script sa met déjà arriver passer des heures sur le projet puit unity plante super on recommence