diff --git a/Assets/Talo Game Services/Talo/Runtime/APIs/SavesAPI.cs b/Assets/Talo Game Services/Talo/Runtime/APIs/SavesAPI.cs index 2388725..a29caf2 100644 --- a/Assets/Talo Game Services/Talo/Runtime/APIs/SavesAPI.cs +++ b/Assets/Talo Game Services/Talo/Runtime/APIs/SavesAPI.cs @@ -8,42 +8,55 @@ namespace TaloGameServices { public class SavesAPI : BaseAPI { - private GameSave _currentSave; - internal List _allSaves = new(); - internal List _registeredLoadables = new(); - private List _loadedLoadables = new(); + internal SavesManager savesManager; + internal SavesContentManager contentManager; public event Action OnSavesLoaded; - public event Action OnSaveChosen; public event Action OnSaveLoadingCompleted; - private IFileHandler _fileHandler; + public event Action OnSaveChosen; + public event Action OnSaveUnloaded; public GameSave[] All { - get => _allSaves.ToArray(); + get => savesManager.AllSaves; } public GameSave Latest { - get { - if (_allSaves.Count == 0) return null; - return _allSaves.OrderByDescending((save) => DateTime.Parse(save.updatedAt)).First(); - } + get => savesManager.GetLatestSave(); } public GameSave Current { - get => _currentSave; + get => savesManager.CurrentSave; } - public SavesAPI() : base("v1/game-saves") { - _fileHandler = Talo.TestMode - ? new SavesTestFileHandler() - : new SavesFileHandler(); + public SavesAPI() : base("v1/game-saves") + { } + + internal void Setup() + { + savesManager = new(); + contentManager = new(); + + savesManager.OnSaveChosen += (save) => + { + OnSaveChosen?.Invoke(save); + }; + + savesManager.OnSavesLoaded += () => + { + OnSavesLoaded?.Invoke(); + }; + + contentManager.OnSaveLoadingCompleted += () => + { + OnSaveLoadingCompleted?.Invoke(); + }; } - private async Task ReplaceSaveWithOfflineSave(GameSave offlineSave) + public async Task ReplaceSaveWithOfflineSave(GameSave offlineSave) { var uri = new Uri($"{baseUrl}/{offlineSave.id}"); var json = await Call(uri, "PATCH", JsonUtility.ToJson(new SavesPatchRequest @@ -56,43 +69,10 @@ private async Task ReplaceSaveWithOfflineSave(GameSave offlineSave) return res.save; } - private async Task SyncSave(GameSave onlineSave, GameSave offlineSave) - { - var onlineUpdatedAt = DateTime.Parse(onlineSave.updatedAt); - var offlineUpdatedAt = DateTime.Parse(offlineSave.updatedAt); - - if (DateTime.Compare(offlineUpdatedAt, onlineUpdatedAt) > 0) - { - var save = await ReplaceSaveWithOfflineSave(offlineSave); - return save; - } - else - { - return onlineSave; - } - } - - private async Task SyncOfflineSaves(GameSave[] offlineSaves) - { - var newSaves = new List(); - - foreach (var offlineSave in offlineSaves) - { - if (offlineSave.id < 0) - { - var save = await CreateSave(offlineSave.name, offlineSave.content); - DeleteOfflineSave(offlineSave.id); - newSaves.Add(save); - } - } - - return newSaves.ToArray(); - } - public async Task GetSaves() { var saves = new List(); - var offlineSaves = GetOfflineSavesContent()?.saves; + var offlineSaves = savesManager.GetOfflineSavesContent()?.saves; if (Talo.IsOffline()) { @@ -108,120 +88,42 @@ public async Task GetSaves() var onlineSaves = res.saves; if (offlineSaves != null) - { - var tasks = onlineSaves.Select(async (onlineSave) => { - var offlineSave = offlineSaves - .FirstOrDefault((offlineSave) => offlineSave.id == onlineSave.id); - - if (offlineSave != null) + var tasks = onlineSaves.Select(async (onlineSave) => { - return await SyncSave(onlineSave, offlineSave); - } - return onlineSave; - }) - .ToList(); + var offlineSave = offlineSaves + .FirstOrDefault((offlineSave) => offlineSave.id == onlineSave.id); - onlineSaves = await Task.WhenAll(tasks); + if (offlineSave != null) + { + return await savesManager.SyncSave(onlineSave, offlineSave); + } + return onlineSave; + }) + .ToList(); - var syncedSaves = await SyncOfflineSaves(offlineSaves); - saves.AddRange(syncedSaves); - } + onlineSaves = await Task.WhenAll(tasks); - saves.AddRange(onlineSaves); - } - - _allSaves = saves; - OnSavesLoaded?.Invoke(); + var syncedSaves = await savesManager.SyncOfflineSaves(offlineSaves); + saves.AddRange(syncedSaves); + } - foreach(var save in _allSaves) - { - UpdateOfflineSaves(save); + saves.AddRange(onlineSaves); } - return _allSaves.ToArray(); + savesManager.HandleSavesLoaded(saves); + return savesManager.AllSaves; } public void Register(Loadable loadable) { - _registeredLoadables.Add(new LoadableData(loadable)); - } - - internal string GetOfflineSavesPath() - { - return Application.persistentDataPath + $"/ts.{Talo.CurrentPlayer.id}.bin"; - } - - internal OfflineSavesContent GetOfflineSavesContent() - { - return _fileHandler.ReadContent(GetOfflineSavesPath()); - } - - internal void WriteOfflineSavesContent(OfflineSavesContent newContent) - { - _fileHandler.WriteContent(GetOfflineSavesPath(), newContent); - } - - private GameSave CreateOfflineCopy(GameSave originalSave) - { - return new GameSave - { - id = originalSave.id, - name = originalSave.name, - content = originalSave.content, - updatedAt = originalSave.updatedAt - }; - } - - private GameSave UpdateOfflineSaves(GameSave incomingSave) - { - var offlineIncomingSave = CreateOfflineCopy(incomingSave); - var offlineContent = GetOfflineSavesContent(); - var updated = false; - - if (offlineContent?.saves != null) - { - // updating - offlineContent.saves = offlineContent.saves.Select((existingSave) => - { - if (existingSave.id == offlineIncomingSave.id) - { - updated = true; - return offlineIncomingSave; - } - return existingSave; - }).ToArray(); - - // appending - if (!updated) - { - if (offlineIncomingSave.id == 0) - { - offlineIncomingSave.id = -offlineContent.saves.Length - 1; - } - - offlineContent.saves = offlineContent.saves.Concat(new GameSave[] { offlineIncomingSave }).ToArray(); - } - } - else - { - // first entry into the saves file - if (offlineIncomingSave.id == 0) - { - offlineIncomingSave.id = -1; - } - offlineContent = new OfflineSavesContent(new GameSave[] { offlineIncomingSave }); - } - - WriteOfflineSavesContent(offlineContent); - return offlineIncomingSave; + contentManager.Register(loadable); } - public async Task CreateSave(string saveName, string content = null) + public async Task CreateSave(string saveName, SaveContent content = null) { GameSave save; - - string saveContent = content ?? JsonUtility.ToJson(new SaveContent(_registeredLoadables)); + var saveContent = content ?? contentManager.Content; if (Talo.IsOffline()) { @@ -247,33 +149,19 @@ public async Task CreateSave(string saveName, string content = null) save = res.save; } - _allSaves.Add(save); - - var offlineSave = UpdateOfflineSaves(save); - var chosenSave = Talo.IsOffline() ? offlineSave : save; - - SetChosenSave(chosenSave, false); - return chosenSave; + return savesManager.CreateSave(save); } public async Task UpdateCurrentSave(string newName = "") { - return await UpdateSave(_currentSave.id, newName); - } - - private GameSave FindSaveByID(int saveId) - { - GameSave save = _allSaves.FirstOrDefault((existingSave) => existingSave.id == saveId); - if (save == null) throw new Exception("Save not found"); - - return save; + return await UpdateSave(savesManager.CurrentSave.id, newName); } public async Task UpdateSave(int saveId, string newName = "") { - var save = FindSaveByID(saveId); + var save = savesManager.FindSaveByID(saveId); - var saveContent = JsonUtility.ToJson(new SaveContent(_registeredLoadables)); + var saveContent = contentManager.Content; if (Talo.IsOffline()) { @@ -298,53 +186,30 @@ public async Task UpdateSave(int saveId, string newName = "") save = res.save; } - _allSaves = _allSaves - .Select((existingSave) => existingSave.id == saveId ? save : existingSave) - .ToList(); - UpdateOfflineSaves(save); + savesManager.HandleSaveUpdated(save); return save; } - private void SetChosenSave(GameSave save, bool loadSave = true) + public void ChooseSave(int saveId, bool loadSave = true) { - _currentSave = save; - if (!loadSave) return; - - _loadedLoadables.Clear(); - OnSaveChosen?.Invoke(save); - } - - public void ChooseSave(int saveId) - { - var save = FindSaveByID(saveId); - SetChosenSave(save); + var save = savesManager.FindSaveByID(saveId); + savesManager.SetChosenSave(save, loadSave); } public void UnloadCurrentSave() { - SetChosenSave(null); - } - - public void SetObjectLoaded(string id) - { - _loadedLoadables.Add(id); - if (_loadedLoadables.Count == _registeredLoadables.Count) + if (Talo.Saves.Current != null) { - OnSaveLoadingCompleted?.Invoke(); + OnSaveUnloaded?.Invoke(Talo.Saves.Current); } - } - private void DeleteOfflineSave(int saveId) - { - var offlineContent = GetOfflineSavesContent(); - offlineContent.saves = offlineContent.saves.Where((save) => save.id != saveId).ToArray(); - WriteOfflineSavesContent(offlineContent); + savesManager.UnloadCurrentSave(); } public async Task DeleteSave(int saveId) { - var save = FindSaveByID(saveId); + var save = savesManager.FindSaveByID(saveId); if (!Talo.IsOffline()) { @@ -353,13 +218,7 @@ public async Task DeleteSave(int saveId) await Call(uri, "DELETE"); } - _allSaves = _allSaves.Where((existingSave) => existingSave.id != saveId).ToList(); - DeleteOfflineSave(saveId); - - if (_currentSave?.id == saveId) - { - UnloadCurrentSave(); - } + savesManager.DeleteSave(saveId); } } } diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/GameSave.cs b/Assets/Talo Game Services/Talo/Runtime/Entities/GameSave.cs index 4feef0d..072b991 100644 --- a/Assets/Talo Game Services/Talo/Runtime/Entities/GameSave.cs +++ b/Assets/Talo Game Services/Talo/Runtime/Entities/GameSave.cs @@ -5,7 +5,7 @@ public class GameSave { public int id; public string name; - public string content; + public SaveContent content; public string updatedAt; } } diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/LoadableData.cs b/Assets/Talo Game Services/Talo/Runtime/Entities/LoadableData.cs deleted file mode 100644 index c3082c3..0000000 --- a/Assets/Talo Game Services/Talo/Runtime/Entities/LoadableData.cs +++ /dev/null @@ -1,23 +0,0 @@ -namespace TaloGameServices -{ - public struct LoadableData - { - public readonly string id; - public readonly Loadable loadable; - public readonly string name; - - public LoadableData(Loadable loadable) - { - id = loadable.Id; - this.loadable = loadable; - - var go = loadable.gameObject; - name = go.name; - while (go.transform.parent != null) - { - go = go.transform.parent.gameObject; - name = $"{go.name}.{name}"; - } - } - } -} diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/LoadableData.cs.meta b/Assets/Talo Game Services/Talo/Runtime/Entities/LoadableData.cs.meta deleted file mode 100644 index fcc6b0d..0000000 --- a/Assets/Talo Game Services/Talo/Runtime/Entities/LoadableData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9d74127bcce07764dac486f7cd18be34 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/SaveContent.cs b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveContent.cs deleted file mode 100644 index 233d59d..0000000 --- a/Assets/Talo Game Services/Talo/Runtime/Entities/SaveContent.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System.Collections.Generic; -using System.Linq; - -namespace TaloGameServices -{ - [System.Serializable] - public struct SavedObjectData - { - public string key; - public string value; - public string type; - } - - [System.Serializable] - public class SavedObject - { - public string id; - public string name; - public SavedObjectData[] data; - - public SavedObject(LoadableData loadableData) - { - id = loadableData.id; - name = loadableData.name; - - if (loadableData.loadable != null) - { - loadableData.loadable.SavedFields.Clear(); - loadableData.loadable.RegisterFields(); - - data = loadableData.loadable.SavedFields.Select((field) => new SavedObjectData() - { - key = field.Key, - value = field.Value.ToString(), - type = field.Value.GetType().ToString() - }).ToArray(); - } - else - { - data = new SavedObjectData[] - { - new SavedObjectData() - { - key = "meta.destroyed", - value = true.ToString(), - type = typeof(bool).ToString() - } - }; - } - } - } - - [System.Serializable] - public class SaveContent - { - public SavedObject[] objects; - - public SaveContent(List loadables) - { - objects = loadables - .Select((loadable) => new SavedObject(loadable)) - .ToArray(); - } - } -} diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData.meta b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData.meta new file mode 100644 index 0000000..c0c17e6 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f6e9d1885b82946d887ea97f512a4c7e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/ILoadable.cs b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/ILoadable.cs similarity index 100% rename from Assets/Talo Game Services/Talo/Runtime/Entities/ILoadable.cs rename to Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/ILoadable.cs diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/ILoadable.cs.meta b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/ILoadable.cs.meta similarity index 100% rename from Assets/Talo Game Services/Talo/Runtime/Entities/ILoadable.cs.meta rename to Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/ILoadable.cs.meta diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/Loadable.cs b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/Loadable.cs similarity index 50% rename from Assets/Talo Game Services/Talo/Runtime/Entities/Loadable.cs rename to Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/Loadable.cs index 3759a8e..65ec411 100644 --- a/Assets/Talo Game Services/Talo/Runtime/Entities/Loadable.cs +++ b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/Loadable.cs @@ -10,59 +10,39 @@ public class Loadable : MonoBehaviour, ILoadable [SerializeField] private string _id = Guid.NewGuid().ToString(); - private Dictionary _savedFields = new (); - public string Id => _id; + private Dictionary _savedFields = new(); + public Dictionary SavedFields => _savedFields; protected virtual void OnEnable() { Talo.Saves.Register(this); - Talo.Saves.OnSaveChosen += LoadData; - } - - protected virtual void OnDisable() - { - Talo.Saves.OnSaveChosen -= LoadData; } - private void LoadData(GameSave save) + public void Hydrate(SavedObjectData[] data) { - if (save == null) return; - - var content = JsonUtility.FromJson(save.content); var fields = new Dictionary(); - SavedObject savedObject; - try - { - savedObject = content.objects.First((obj) => obj.id.Equals(Id)); - } - catch (InvalidOperationException) - { - Debug.LogWarning($"Loadable with id '{Id}' not found in save '{save.name}'"); - return; - } - - foreach (SavedObjectData field in savedObject.data) + foreach (SavedObjectData field in data) { var type = Type.GetType(field.type); - fields.Add(field.key, Convert.ChangeType(field.value, type)); + fields[field.key] = Convert.ChangeType(field.value, type); } OnLoaded(fields); - Talo.Saves.SetObjectLoaded(_id); } public virtual void RegisterFields() { - throw new NotImplementedException(); + // sometimes all you care about is the loadable's presence in the scene + // so this can remain unimplemented } protected void RegisterField(string key, object value) { - _savedFields.Add(key, value); + _savedFields[key] = value; } public virtual void OnLoaded(Dictionary data) @@ -73,9 +53,36 @@ public virtual void OnLoaded(Dictionary data) protected bool HandleDestroyed(Dictionary data) { data.TryGetValue("meta.destroyed", out var destroyed); - if (destroyed != null) Destroy(gameObject); + var isDestroyed = destroyed != null; + if (isDestroyed) Destroy(gameObject); + return isDestroyed; + } + + public string GetPath() + { + var go = gameObject; + name = go.name; + while (go.transform.parent != null) + { + go = go.transform.parent.gameObject; + name = $"{go.name}.{name}"; + } + + return name; + } + + public SavedObjectData[] GetLatestData() + { + RegisterFields(); + + var data = SavedFields.Select((field) => new SavedObjectData() + { + key = field.Key, + value = field.Value.ToString(), + type = field.Value.GetType().ToString() + }).ToArray(); - return destroyed != null; + return data; } } } diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/Loadable.cs.meta b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/Loadable.cs.meta similarity index 100% rename from Assets/Talo Game Services/Talo/Runtime/Entities/Loadable.cs.meta rename to Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/Loadable.cs.meta diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/OfflineSavesContent.cs b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/OfflineSavesContent.cs similarity index 100% rename from Assets/Talo Game Services/Talo/Runtime/Entities/OfflineSavesContent.cs rename to Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/OfflineSavesContent.cs diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/OfflineSavesContent.cs.meta b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/OfflineSavesContent.cs.meta similarity index 100% rename from Assets/Talo Game Services/Talo/Runtime/Entities/OfflineSavesContent.cs.meta rename to Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/OfflineSavesContent.cs.meta diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/SaveContent.cs b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/SaveContent.cs new file mode 100644 index 0000000..22bd578 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/SaveContent.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace TaloGameServices +{ + [Serializable] + public struct SaveContentObject + { + public string id; + public string name; + public SavedObjectData[] data; + } + + [Serializable] + public class SaveContent + { + public SaveContentObject[] objects; + + public SaveContent(Dictionary savedObjects) + { + objects = savedObjects + .Select((item) => + { + var savedObject = item.Value; + return new SaveContentObject() + { + id = savedObject.id, + name = savedObject.name, + data = savedObject.SerialiseData() + }; + }) + .ToArray(); + } + } +} diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/SaveContent.cs.meta b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/SaveContent.cs.meta similarity index 100% rename from Assets/Talo Game Services/Talo/Runtime/Entities/SaveContent.cs.meta rename to Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/SaveContent.cs.meta diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/SavedObject.cs b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/SavedObject.cs new file mode 100644 index 0000000..be63cf4 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/SavedObject.cs @@ -0,0 +1,86 @@ +using System; +using System.Linq; +using UnityEngine.SceneManagement; + +namespace TaloGameServices +{ + [Serializable] + public struct SavedObjectData + { + public string key; + public string value; + public string type; + } + + public class SavedObject + { + internal string id; + internal string name; + private Loadable loadable; + private SavedObjectData[] cachedData; + private int sceneIndex = -1; + + public SavedObject(string id, string name, SavedObjectData[] data) + { + this.id = id; + this.name = name; + cachedData = data; + } + + private SavedObjectData[] GetLatestData() + { + cachedData = loadable.GetLatestData(); + return cachedData; + } + + private bool IsLoadableValid() + { + return loadable != null; + } + + private int GetCurrentSceneIndex() + { + return SceneManager.GetActiveScene().buildIndex; + } + + private bool CurrentSceneMatches() + { + return sceneIndex >= 0 && GetCurrentSceneIndex() == sceneIndex; + } + + internal void RegisterLoadable(Loadable loadable, bool hydrate = true) + { + this.loadable = loadable; + sceneIndex = GetCurrentSceneIndex(); + + if (hydrate) + { + loadable.Hydrate(cachedData); + } + } + + internal SavedObjectData[] SerialiseData() + { + var valid = IsLoadableValid(); + + if (!valid && !CurrentSceneMatches()) + { + return cachedData; + } + + if (valid) + { + return GetLatestData(); + } + + cachedData = cachedData.Append(new SavedObjectData() + { + key = "meta.destroyed", + value = true.ToString(), + type = typeof(bool).ToString() + }).ToArray(); + + return cachedData; + } + } +} diff --git a/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/SavedObject.cs.meta b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/SavedObject.cs.meta new file mode 100644 index 0000000..70dd9b2 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Runtime/Entities/SaveData/SavedObject.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9c15f8e47c46d4b009e89c8f2bc2805e \ No newline at end of file diff --git a/Assets/Talo Game Services/Talo/Runtime/Requests/SavesPatchRequest.cs b/Assets/Talo Game Services/Talo/Runtime/Requests/SavesPatchRequest.cs index 35eed74..691a4a8 100644 --- a/Assets/Talo Game Services/Talo/Runtime/Requests/SavesPatchRequest.cs +++ b/Assets/Talo Game Services/Talo/Runtime/Requests/SavesPatchRequest.cs @@ -4,6 +4,6 @@ public class SavesPatchRequest { public string name; - public string content; + public SaveContent content; } } diff --git a/Assets/Talo Game Services/Talo/Runtime/Requests/SavesPostRequest.cs b/Assets/Talo Game Services/Talo/Runtime/Requests/SavesPostRequest.cs index cc6e4b4..b60fa54 100644 --- a/Assets/Talo Game Services/Talo/Runtime/Requests/SavesPostRequest.cs +++ b/Assets/Talo Game Services/Talo/Runtime/Requests/SavesPostRequest.cs @@ -4,6 +4,6 @@ public class SavesPostRequest { public string name; - public string content; + public SaveContent content; } } diff --git a/Assets/Talo Game Services/Talo/Runtime/TaloManager.cs b/Assets/Talo Game Services/Talo/Runtime/TaloManager.cs index 48bf471..1765d7d 100644 --- a/Assets/Talo Game Services/Talo/Runtime/TaloManager.cs +++ b/Assets/Talo Game Services/Talo/Runtime/TaloManager.cs @@ -17,6 +17,7 @@ private void Awake() public void OnReady() { Talo.Events.OnFlushed += ResetFlushTimer; + Talo.Saves.Setup(); } private void OnDisable() diff --git a/Assets/Talo Game Services/Talo/Runtime/Utils/SaveContentManager.cs b/Assets/Talo Game Services/Talo/Runtime/Utils/SaveContentManager.cs new file mode 100644 index 0000000..5a7bb67 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Runtime/Utils/SaveContentManager.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; + +namespace TaloGameServices +{ + public class SavesContentManager + { + private Dictionary loadables = new(); + internal Dictionary savedObjects = new(); + + public event Action OnSaveLoadingCompleted; + + public SaveContent Content => new(savedObjects); + + public SavesContentManager() + { + Talo.Saves.OnSaveChosen += MatchLoadables; + Talo.Saves.OnSaveUnloaded += (_save) => + { + loadables.Clear(); + savedObjects.Clear(); + }; + } + + internal void Register(Loadable loadable) + { + loadables[loadable.Id] = loadable; + + // create a new saved object in case it isn't in the save file yet + if (savedObjects.TryGetValue(loadable.Id, out var existingSavedObject)) + { + existingSavedObject.RegisterLoadable(loadable); + } + else + { + var savedObject = new SavedObject(loadable.Id, loadable.GetPath(), loadable.GetLatestData()); + savedObject.RegisterLoadable(loadable, false); // no need to hydrate, the data will match + savedObjects[loadable.Id] = savedObject; + } + } + + private void MatchLoadables(GameSave save) + { + foreach (var item in save.content.objects) + { + var savedObject = new SavedObject(item.id, item.name, item.data); + savedObjects[savedObject.id] = savedObject; + + var matchingLoadable = loadables.GetValueOrDefault(savedObject.id); + if (matchingLoadable != null) + { + savedObject.RegisterLoadable(matchingLoadable); + } + } + + OnSaveLoadingCompleted?.Invoke(); + } + } +} diff --git a/Assets/Talo Game Services/Talo/Runtime/Utils/SaveContentManager.cs.meta b/Assets/Talo Game Services/Talo/Runtime/Utils/SaveContentManager.cs.meta new file mode 100644 index 0000000..0099cee --- /dev/null +++ b/Assets/Talo Game Services/Talo/Runtime/Utils/SaveContentManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 85e7e328e40b04d199cdb38379fbd9b8 \ No newline at end of file diff --git a/Assets/Talo Game Services/Talo/Runtime/Utils/SavesManager.cs b/Assets/Talo Game Services/Talo/Runtime/Utils/SavesManager.cs new file mode 100644 index 0000000..18fd33a --- /dev/null +++ b/Assets/Talo Game Services/Talo/Runtime/Utils/SavesManager.cs @@ -0,0 +1,207 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using UnityEngine; + +namespace TaloGameServices +{ + public class SavesManager + { + private GameSave _currentSave; + public GameSave CurrentSave => _currentSave; + + internal List _allSaves = new(); + public GameSave[] AllSaves => _allSaves.ToArray(); + + public event Action OnSaveChosen; + public event Action OnSavesLoaded; + + private IFileHandler _fileHandler; + + public SavesManager() + { + _fileHandler = Talo.TestMode + ? new SavesTestFileHandler() + : new SavesFileHandler(); + } + + public GameSave CreateSave(GameSave save) + { + _allSaves.Add(save); + + var offlineSave = UpdateOfflineSaves(save); + var chosenSave = Talo.IsOffline() ? offlineSave : save; + + SetChosenSave(chosenSave, false); + return chosenSave; + } + + public void SetChosenSave(GameSave save, bool loadSave) + { + _currentSave = save; + if (!loadSave) return; + + OnSaveChosen?.Invoke(save); + } + + public void UnloadCurrentSave() + { + SetChosenSave(null, false); + } + + internal string GetOfflineSavesPath() + { + return Application.persistentDataPath + $"/ts.{Talo.CurrentPlayer.id}.bin"; + } + + internal OfflineSavesContent GetOfflineSavesContent() + { + return _fileHandler.ReadContent(GetOfflineSavesPath()); + } + + internal void WriteOfflineSavesContent(OfflineSavesContent newContent) + { + _fileHandler.WriteContent(GetOfflineSavesPath(), newContent); + } + + private GameSave CreateOfflineCopy(GameSave originalSave) + { + return new GameSave + { + id = originalSave.id, + name = originalSave.name, + content = originalSave.content, + updatedAt = originalSave.updatedAt + }; + } + + public GameSave UpdateOfflineSaves(GameSave incomingSave) + { + var offlineIncomingSave = CreateOfflineCopy(incomingSave); + var offlineContent = GetOfflineSavesContent(); + var updated = false; + + if (offlineContent?.saves != null) + { + // updating + offlineContent.saves = offlineContent.saves.Select((existingSave) => + { + if (existingSave.id == offlineIncomingSave.id) + { + updated = true; + return offlineIncomingSave; + } + return existingSave; + }).ToArray(); + + // appending + if (!updated) + { + if (offlineIncomingSave.id == 0) + { + offlineIncomingSave.id = -offlineContent.saves.Length - 1; + } + + offlineContent.saves = offlineContent.saves.Concat(new GameSave[] { offlineIncomingSave }).ToArray(); + } + } + else + { + // first entry into the saves file + if (offlineIncomingSave.id == 0) + { + offlineIncomingSave.id = -1; + } + offlineContent = new OfflineSavesContent(new GameSave[] { offlineIncomingSave }); + } + + WriteOfflineSavesContent(offlineContent); + return offlineIncomingSave; + } + + public void DeleteOfflineSave(int saveId) + { + var offlineContent = GetOfflineSavesContent(); + offlineContent.saves = offlineContent.saves.Where((save) => save.id != saveId).ToArray(); + WriteOfflineSavesContent(offlineContent); + } + + public void DeleteSave(int saveId) + { + _allSaves = _allSaves.Where((existingSave) => existingSave.id != saveId).ToList(); + DeleteOfflineSave(saveId); + + if (_currentSave?.id == saveId) + { + UnloadCurrentSave(); + } + } + + public async Task SyncOfflineSaves(GameSave[] offlineSaves) + { + var newSaves = new List(); + + foreach (var offlineSave in offlineSaves) + { + if (offlineSave.id < 0) + { + var save = await Talo.Saves.CreateSave(offlineSave.name, offlineSave.content); + DeleteOfflineSave(offlineSave.id); + newSaves.Add(save); + } + } + + return newSaves.ToArray(); + } + + public async Task SyncSave(GameSave onlineSave, GameSave offlineSave) + { + var onlineUpdatedAt = DateTime.Parse(onlineSave.updatedAt); + var offlineUpdatedAt = DateTime.Parse(offlineSave.updatedAt); + + if (DateTime.Compare(offlineUpdatedAt, onlineUpdatedAt) > 0) + { + var save = await Talo.Saves.ReplaceSaveWithOfflineSave(offlineSave); + return save; + } + else + { + return onlineSave; + } + } + + public GameSave GetLatestSave() + { + if (_allSaves.Count == 0) return null; + return _allSaves.OrderByDescending((save) => DateTime.Parse(save.updatedAt)).First(); + } + + public void HandleSavesLoaded(List saves) + { + _allSaves = saves; + OnSavesLoaded?.Invoke(); + + foreach (var save in _allSaves) + { + UpdateOfflineSaves(save); + } + } + + public void HandleSaveUpdated(GameSave save) + { + _allSaves = _allSaves + .Select((existingSave) => existingSave.id == save.id ? save : existingSave) + .ToList(); + UpdateOfflineSaves(save); + } + + public GameSave FindSaveByID(int saveId) + { + GameSave save = _allSaves.FirstOrDefault((existingSave) => existingSave.id == saveId); + if (save == null) throw new Exception("Save not found"); + + return save; + } + } +} diff --git a/Assets/Talo Game Services/Talo/Runtime/Utils/SavesManager.cs.meta b/Assets/Talo Game Services/Talo/Runtime/Utils/SavesManager.cs.meta new file mode 100644 index 0000000..a785543 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Runtime/Utils/SavesManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 11c61d66eac5d4ac4ad1555f0a41ef68 \ No newline at end of file diff --git a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Materials/Cube.mat b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Materials/Cube.mat index 74afaf3..a482538 100644 --- a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Materials/Cube.mat +++ b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Materials/Cube.mat @@ -9,6 +9,8 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: Cube m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: [] m_InvalidKeywords: [] m_LightmapFlags: 4 @@ -17,6 +19,7 @@ Material: m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -78,3 +81,4 @@ Material: - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Prefabs.meta b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Prefabs.meta new file mode 100644 index 0000000..50aaa69 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1fd6e1822b4524b0db37db81b100f757 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Prefabs/Cube.prefab b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Prefabs/Cube.prefab new file mode 100644 index 0000000..6b7da52 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Prefabs/Cube.prefab @@ -0,0 +1,124 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3710678266809446433 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8165313684371342336} + - component: {fileID: 35045392379713743} + - component: {fileID: 4200354852041198646} + - component: {fileID: 2491947681281921355} + - component: {fileID: 8812624135313353014} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8165313684371342336 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3710678266809446433} + 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!33 &35045392379713743 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3710678266809446433} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4200354852041198646 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3710678266809446433} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c309022195aafc94e8b1ab50666453d5, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &2491947681281921355 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3710678266809446433} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &8812624135313353014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3710678266809446433} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b39037013ee1fd14a9c8a5239ff8845d, type: 3} + m_Name: + m_EditorClassIdentifier: + _id: accb8c22-a2b1-4f5e-91a3-87a3dd890793 diff --git a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Prefabs/Cube.prefab.meta b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Prefabs/Cube.prefab.meta new file mode 100644 index 0000000..88bc34b --- /dev/null +++ b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Prefabs/Cube.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1cc23fc5b538645e7921af59f8f41ece +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels.meta b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels.meta new file mode 100644 index 0000000..adb5bf8 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 95fd228ce65084ac8a3d4c3ec749a798 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel1.unity b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel1.unity new file mode 100644 index 0000000..ee69f1f --- /dev/null +++ b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel1.unity @@ -0,0 +1,549 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!4 &23889030 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 873592741} + m_PrefabAsset: {fileID: 0} +--- !u!4 &203762194 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 6951936431976975582} + m_PrefabAsset: {fileID: 0} +--- !u!1 &274181924 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 274181925} + m_Layer: 0 + m_Name: Cubes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &274181925 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 274181924} + 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: + - {fileID: 203762194} + - {fileID: 1285366104} + - {fileID: 23889030} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &305735399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 305735402} + - component: {fileID: 305735401} + - component: {fileID: 305735400} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &305735400 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305735399} + m_Enabled: 1 +--- !u!20 &305735401 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305735399} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &305735402 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305735399} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + 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 &542891074 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 542891075} + - component: {fileID: 542891076} + - component: {fileID: 542891077} + m_Layer: 0 + m_Name: Game UI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &542891075 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 542891074} + 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: 1980469892} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &542891076 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 542891074} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PanelSettings: {fileID: 11400000, guid: be90bb123631b430d84dded90c407da6, type: 2} + m_ParentUI: {fileID: 0} + sourceAsset: {fileID: 9197481963319205126, guid: 810c40ff51c484e79b0a74eff08bab14, type: 3} + m_SortingOrder: 0 + m_WorldSpaceSizeMode: 1 + m_WorldSpaceWidth: 1920 + m_WorldSpaceHeight: 1080 +--- !u!114 &542891077 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 542891074} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d38af9a2475204b3e83bce774ba563c5, type: 3} + m_Name: + m_EditorClassIdentifier: + level: 0 +--- !u!1001 &873592741 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube (2) + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: -2.497 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: -1.497 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level1cube2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!4 &1285366104 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 1864818726} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1864818726 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube (1) + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: 2.499 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: -1.497 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level1cube1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!1 &1980469890 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1980469892} + m_Layer: 0 + m_Name: UI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1980469892 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1980469890} + 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: + - {fileID: 542891075} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &6951936431976975582 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: 1.97 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level1cube0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 305735402} + - {fileID: 274181925} + - {fileID: 1980469892} diff --git a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel1.unity.meta b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel1.unity.meta new file mode 100644 index 0000000..ec07169 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel1.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a4a2bee22c0d549ccb0050472abb6b98 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel2.unity b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel2.unity new file mode 100644 index 0000000..f4d4b8d --- /dev/null +++ b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel2.unity @@ -0,0 +1,683 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!4 &23889030 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 873592741} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &157240683 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube (4) + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: 2.503 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: 1.494 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level2cube4 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!4 &157240684 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 157240683} + m_PrefabAsset: {fileID: 0} +--- !u!4 &203762194 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 6951936431976975582} + m_PrefabAsset: {fileID: 0} +--- !u!1 &274181924 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 274181925} + m_Layer: 0 + m_Name: Cubes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &274181925 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 274181924} + 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: + - {fileID: 203762194} + - {fileID: 1285366104} + - {fileID: 23889030} + - {fileID: 1491573667} + - {fileID: 157240684} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &305735399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 305735402} + - component: {fileID: 305735401} + - component: {fileID: 305735400} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &305735400 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305735399} + m_Enabled: 1 +--- !u!20 &305735401 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305735399} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &305735402 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305735399} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + 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 &542891074 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 542891075} + - component: {fileID: 542891076} + - component: {fileID: 542891077} + m_Layer: 0 + m_Name: Game UI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &542891075 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 542891074} + 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: 1980469892} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &542891076 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 542891074} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PanelSettings: {fileID: 11400000, guid: be90bb123631b430d84dded90c407da6, type: 2} + m_ParentUI: {fileID: 0} + sourceAsset: {fileID: 9197481963319205126, guid: 810c40ff51c484e79b0a74eff08bab14, type: 3} + m_SortingOrder: 0 + m_WorldSpaceSizeMode: 1 + m_WorldSpaceWidth: 1920 + m_WorldSpaceHeight: 1080 +--- !u!114 &542891077 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 542891074} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d38af9a2475204b3e83bce774ba563c5, type: 3} + m_Name: + m_EditorClassIdentifier: + level: 1 +--- !u!1001 &873592741 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube (2) + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: -2.497 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: -1.497 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level2cube2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!4 &1285366104 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 1864818726} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1491573666 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube (3) + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: -2.501 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: 1.511 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level2cube3 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!4 &1491573667 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 1491573666} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1864818726 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube (1) + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: 2.499 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: -1.497 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level2cube1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!1 &1980469890 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1980469892} + m_Layer: 0 + m_Name: UI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1980469892 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1980469890} + 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: + - {fileID: 542891075} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &6951936431976975582 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: 0.007 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: -0.007 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level2cube0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 305735402} + - {fileID: 274181925} + - {fileID: 1980469892} diff --git a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel2.unity.meta b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel2.unity.meta new file mode 100644 index 0000000..7558a20 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel2.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6c156ec1048c343318e986a243c13517 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel3.unity b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel3.unity new file mode 100644 index 0000000..3a57978 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel3.unity @@ -0,0 +1,884 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!4 &23889030 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 873592741} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &157240683 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube (4) + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: 2.503 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: 1.494 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level3cube4 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!4 &157240684 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 157240683} + m_PrefabAsset: {fileID: 0} +--- !u!4 &203762194 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 6951936431976975582} + m_PrefabAsset: {fileID: 0} +--- !u!1 &274181924 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 274181925} + m_Layer: 0 + m_Name: Cubes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &274181925 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 274181924} + 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: + - {fileID: 203762194} + - {fileID: 1285366104} + - {fileID: 23889030} + - {fileID: 1491573667} + - {fileID: 157240684} + - {fileID: 967039710} + - {fileID: 1439699141} + - {fileID: 593438902} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &305735399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 305735402} + - component: {fileID: 305735401} + - component: {fileID: 305735400} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &305735400 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305735399} + m_Enabled: 1 +--- !u!20 &305735401 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305735399} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &305735402 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305735399} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + 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 &542891074 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 542891075} + - component: {fileID: 542891076} + - component: {fileID: 542891077} + m_Layer: 0 + m_Name: Game UI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &542891075 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 542891074} + 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: 1980469892} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &542891076 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 542891074} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PanelSettings: {fileID: 11400000, guid: be90bb123631b430d84dded90c407da6, type: 2} + m_ParentUI: {fileID: 0} + sourceAsset: {fileID: 9197481963319205126, guid: 810c40ff51c484e79b0a74eff08bab14, type: 3} + m_SortingOrder: 0 + m_WorldSpaceSizeMode: 1 + m_WorldSpaceWidth: 1920 + m_WorldSpaceHeight: 1080 +--- !u!114 &542891077 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 542891074} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d38af9a2475204b3e83bce774ba563c5, type: 3} + m_Name: + m_EditorClassIdentifier: + level: 2 +--- !u!1001 &593438901 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube (7) + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: -5.006 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: 0.012 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level3cube7 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!4 &593438902 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 593438901} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &873592741 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube (2) + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: -2.497 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: -1.497 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level3cube2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!1001 &967039709 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube (5) + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: 4.994 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: 0.012 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level3cube5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!4 &967039710 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 967039709} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1285366104 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 1864818726} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1439699140 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube (6) + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: 0.002 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: -3.001 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level3cube6 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!4 &1439699141 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 1439699140} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1491573666 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube (3) + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: -2.501 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: 1.511 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level3cube3 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!4 &1491573667 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + m_PrefabInstance: {fileID: 1491573666} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1864818726 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube (1) + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: 2.499 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: -1.497 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level3cube1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!1 &1980469890 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1980469892} + m_Layer: 0 + m_Name: UI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1980469892 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1980469890} + 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: + - {fileID: 542891075} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &6951936431976975582 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 274181925} + m_Modifications: + - target: {fileID: 3710678266809446433, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_Name + value: Cube + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.y + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8165313684371342336, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8812624135313353014, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} + propertyPath: _id + value: level3cube0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1cc23fc5b538645e7921af59f8f41ece, type: 3} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 305735402} + - {fileID: 274181925} + - {fileID: 1980469892} diff --git a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel3.unity.meta b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel3.unity.meta new file mode 100644 index 0000000..f415c62 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/Levels/CubesLevel3.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2600b8d12c38348518c33e0665f2b820 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/SavesDemo.unity b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/SavesDemo.unity index e213fec..1dda2b2 100644 --- a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/SavesDemo.unity +++ b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scenes/SavesDemo.unity @@ -119,250 +119,6 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &23889025 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 23889030} - - component: {fileID: 23889029} - - component: {fileID: 23889028} - - component: {fileID: 23889027} - - component: {fileID: 23889026} - m_Layer: 0 - m_Name: Cube (2) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &23889026 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 23889025} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b39037013ee1fd14a9c8a5239ff8845d, type: 3} - m_Name: - m_EditorClassIdentifier: - _id: ea724acf-c83a-43be-8f12-04c10ecc65ac ---- !u!65 &23889027 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 23889025} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &23889028 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 23889025} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: c309022195aafc94e8b1ab50666453d5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &23889029 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 23889025} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &23889030 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 23889025} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -5.59, y: -0.93999994, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 274181925} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &142235298 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 142235303} - - component: {fileID: 142235302} - - component: {fileID: 142235301} - - component: {fileID: 142235300} - - component: {fileID: 142235299} - m_Layer: 0 - m_Name: Cube (3) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &142235299 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142235298} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b39037013ee1fd14a9c8a5239ff8845d, type: 3} - m_Name: - m_EditorClassIdentifier: - _id: 564a11e7-2236-4d87-83e3-467b9adb5d99 ---- !u!65 &142235300 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142235298} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &142235301 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142235298} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: c309022195aafc94e8b1ab50666453d5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &142235302 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142235298} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &142235303 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142235298} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 3.1599998, y: 3.02, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 274181925} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &183700972 GameObject: m_ObjectHideFlags: 0 @@ -427,167 +183,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 3b45e63b930014225ae1ea9b7c3524ad, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1 &203762189 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 203762194} - - component: {fileID: 203762193} - - component: {fileID: 203762192} - - component: {fileID: 203762191} - - component: {fileID: 203762190} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &203762190 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 203762189} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b39037013ee1fd14a9c8a5239ff8845d, type: 3} - m_Name: - m_EditorClassIdentifier: - _id: 8de74847-49d9-4816-911a-8d66d7e35efe ---- !u!65 &203762191 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 203762189} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &203762192 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 203762189} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: c309022195aafc94e8b1ab50666453d5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &203762193 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 203762189} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &203762194 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 203762189} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -4.68, y: 2.46, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 274181925} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &274181924 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 274181925} - m_Layer: 0 - m_Name: Cubes - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &274181925 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 274181924} - 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: - - {fileID: 203762194} - - {fileID: 1285366104} - - {fileID: 23889030} - - {fileID: 142235303} - - {fileID: 778945212} - - {fileID: 1962359163} - - {fileID: 1274567925} - - {fileID: 833810541} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &305735399 GameObject: m_ObjectHideFlags: 0 @@ -680,70 +275,6 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &542891074 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 542891075} - - component: {fileID: 542891076} - - component: {fileID: 542891077} - m_Layer: 0 - m_Name: Game UI - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &542891075 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 542891074} - 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: 1980469892} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &542891076 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 542891074} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_PanelSettings: {fileID: 11400000, guid: be90bb123631b430d84dded90c407da6, type: 2} - m_ParentUI: {fileID: 0} - sourceAsset: {fileID: 9197481963319205126, guid: 810c40ff51c484e79b0a74eff08bab14, type: 3} - m_SortingOrder: 0 - m_WorldSpaceSizeMode: 1 - m_WorldSpaceWidth: 1920 - m_WorldSpaceHeight: 1080 ---- !u!114 &542891077 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 542891074} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d38af9a2475204b3e83bce774ba563c5, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &622253791 GameObject: m_ObjectHideFlags: 0 @@ -809,250 +340,6 @@ MonoBehaviour: m_WorldSpaceSizeMode: 1 m_WorldSpaceWidth: 1920 m_WorldSpaceHeight: 1080 ---- !u!1 &778945207 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 778945212} - - component: {fileID: 778945211} - - component: {fileID: 778945210} - - component: {fileID: 778945209} - - component: {fileID: 778945208} - m_Layer: 0 - m_Name: Cube (4) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &778945208 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 778945207} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b39037013ee1fd14a9c8a5239ff8845d, type: 3} - m_Name: - m_EditorClassIdentifier: - _id: 50edaf75-ea58-42bd-99c9-d6f7ff7d8bdd ---- !u!65 &778945209 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 778945207} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &778945210 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 778945207} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: c309022195aafc94e8b1ab50666453d5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &778945211 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 778945207} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &778945212 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 778945207} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -3.18, y: -3.08, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 274181925} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &833810536 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 833810541} - - component: {fileID: 833810540} - - component: {fileID: 833810539} - - component: {fileID: 833810538} - - component: {fileID: 833810537} - m_Layer: 0 - m_Name: Cube (7) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &833810537 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 833810536} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b39037013ee1fd14a9c8a5239ff8845d, type: 3} - m_Name: - m_EditorClassIdentifier: - _id: d0cbba93-819b-4e9e-b2e1-b144e055b832 ---- !u!65 &833810538 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 833810536} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &833810539 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 833810536} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: c309022195aafc94e8b1ab50666453d5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &833810540 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 833810536} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &833810541 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 833810536} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 4.16, y: -2.54, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 274181925} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1242260410 GameObject: m_ObjectHideFlags: 0 @@ -1117,372 +404,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: a9dbb43503d224fb4b7fb8401e7bab8d, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1 &1274567920 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1274567925} - - component: {fileID: 1274567924} - - component: {fileID: 1274567923} - - component: {fileID: 1274567922} - - component: {fileID: 1274567921} - m_Layer: 0 - m_Name: Cube (6) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1274567921 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1274567920} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b39037013ee1fd14a9c8a5239ff8845d, type: 3} - m_Name: - m_EditorClassIdentifier: - _id: 4c216a63-12a0-4abe-a8b6-a689940e1ed8 ---- !u!65 &1274567922 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1274567920} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1274567923 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1274567920} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: c309022195aafc94e8b1ab50666453d5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1274567924 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1274567920} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1274567925 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1274567920} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 1.7099998, y: -0.72999996, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 274181925} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1285366099 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1285366104} - - component: {fileID: 1285366103} - - component: {fileID: 1285366102} - - component: {fileID: 1285366101} - - component: {fileID: 1285366100} - m_Layer: 0 - m_Name: Cube (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1285366100 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1285366099} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b39037013ee1fd14a9c8a5239ff8845d, type: 3} - m_Name: - m_EditorClassIdentifier: - _id: a17ccb73-0bbc-4fb5-aae4-2d6a25eddf34 ---- !u!65 &1285366101 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1285366099} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1285366102 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1285366099} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: c309022195aafc94e8b1ab50666453d5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1285366103 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1285366099} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1285366104 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1285366099} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -1.9200001, y: 0.92, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 274181925} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1962359158 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1962359163} - - component: {fileID: 1962359162} - - component: {fileID: 1962359161} - - component: {fileID: 1962359160} - - component: {fileID: 1962359159} - m_Layer: 0 - m_Name: Cube (5) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1962359159 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1962359158} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b39037013ee1fd14a9c8a5239ff8845d, type: 3} - m_Name: - m_EditorClassIdentifier: - _id: 476bd331-26c2-4b11-bf2f-65035e326cc1 ---- !u!65 &1962359160 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1962359158} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1962359161 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1962359158} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: c309022195aafc94e8b1ab50666453d5, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1962359162 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1962359158} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1962359163 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1962359158} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 5.39, y: 0.85, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 274181925} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1980469890 GameObject: m_ObjectHideFlags: 0 @@ -1516,7 +437,6 @@ Transform: - {fileID: 1242260412} - {fileID: 183700974} - {fileID: 622253792} - - {fileID: 542891075} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1980469893 @@ -1534,11 +454,10 @@ MonoBehaviour: loginUI: {fileID: 1242260411} menuUI: {fileID: 183700973} savesListUI: {fileID: 622253794} - gameUI: {fileID: 542891076} + gameUI: {fileID: 0} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 m_Roots: - {fileID: 305735402} - - {fileID: 274181925} - {fileID: 1980469892} diff --git a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scripts/GameUIController.cs b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scripts/GameUIController.cs index aadf7b5..84b21ba 100644 --- a/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scripts/GameUIController.cs +++ b/Assets/Talo Game Services/Talo/Samples/SavesDemo/Scripts/GameUIController.cs @@ -1,4 +1,7 @@ +using System.Linq; +using UnityEditor.SceneManagement; using UnityEngine; +using UnityEngine.SceneManagement; using UnityEngine.UIElements; namespace TaloGameServices.Sample.SavesDemo @@ -8,10 +11,20 @@ public class GameUIController : MonoBehaviour private VisualElement root; private Button updateSaveButton; - private void Awake() + public int level; + + private void Start() { root = GetComponent().rootVisualElement; + if (Talo.Saves.Current == null) + { + GoToMenu(); + return; + } + + root.Q