From 2535ce4a1b44dd971a71dc43f6399af72ebb8514 Mon Sep 17 00:00:00 2001 From: lwj Date: Tue, 22 Jul 2025 15:56:22 +0900 Subject: [PATCH] fix save camera position --- Assets/Scripts/Data/SaveLoadEntity.cs | 19 ++++++++++++++++ Assets/Scripts/Data/SaveLoadEntity.cs.meta | 2 ++ Assets/WorkSpace/LWJ/SaveLoadmanager.cs | 25 ++++++++++++++++++++-- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 Assets/Scripts/Data/SaveLoadEntity.cs create mode 100644 Assets/Scripts/Data/SaveLoadEntity.cs.meta diff --git a/Assets/Scripts/Data/SaveLoadEntity.cs b/Assets/Scripts/Data/SaveLoadEntity.cs new file mode 100644 index 00000000..d6a71f80 --- /dev/null +++ b/Assets/Scripts/Data/SaveLoadEntity.cs @@ -0,0 +1,19 @@ +using UnityEngine; +using System.Collections.Generic; + + +namespace Octopus.Simulator.Networks +{ + public class SaveLoadEntity + { + public List modelInfos = new List(); + public CameraInfo cameraPositionInfo = new CameraInfo(); + } + + public class CameraInfo + { + public string position; + public string rotation; + } +} + diff --git a/Assets/Scripts/Data/SaveLoadEntity.cs.meta b/Assets/Scripts/Data/SaveLoadEntity.cs.meta new file mode 100644 index 00000000..bbc39dc6 --- /dev/null +++ b/Assets/Scripts/Data/SaveLoadEntity.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f401d6150422e6d49b64c47f869c6a41 \ No newline at end of file diff --git a/Assets/WorkSpace/LWJ/SaveLoadmanager.cs b/Assets/WorkSpace/LWJ/SaveLoadmanager.cs index a7d4abf9..b40ada2e 100644 --- a/Assets/WorkSpace/LWJ/SaveLoadmanager.cs +++ b/Assets/WorkSpace/LWJ/SaveLoadmanager.cs @@ -133,7 +133,14 @@ namespace Octopus.Simulator.Networks saveInfos.Add(tmpSimulationModelInfo); } - string jsonObject = JsonConvert.SerializeObject(saveInfos, Formatting.Indented); + SaveLoadEntity saveInfo = new SaveLoadEntity(); + + saveInfo.modelInfos = saveInfos; + saveInfo.cameraPositionInfo.position = UnityEngine.Camera.main.transform.position.ToString(); + saveInfo.cameraPositionInfo.rotation = UnityEngine.Camera.main.transform.eulerAngles.ToString(); + + + string jsonObject = JsonConvert.SerializeObject(saveInfo, Formatting.Indented); var modelClass = new WebModelClass(); modelClass.logicId = int.Parse(WebParameters.config.logicId); @@ -188,8 +195,22 @@ namespace Octopus.Simulator.Networks public void Onclick_Load(string jsonData) { List loadInfos = new List(); + SaveLoadEntity loadEntity = new SaveLoadEntity(); - loadInfos = JsonConvert.DeserializeObject>(jsonData); + // ¸ðµç ÇÁ·ÎÁ§Æ®µéÀÌ Ä«¸Þ¶ó Á¤º¸¸¦ ÀúÀåÇϵµ·Ï º¯°æ µÈ ÈÄ¿¡´Â catch ¹®¸¸ ³²±â°í try ¹® »èÁ¦ + try + { + loadInfos = JsonConvert.DeserializeObject>(jsonData); + } + catch(JsonSerializationException e) + { + loadEntity = JsonConvert.DeserializeObject(jsonData); + + loadInfos = loadEntity.modelInfos; + UnityEngine.Camera.main.transform.position = ParseVector3(loadEntity.cameraPositionInfo.position); + UnityEngine.Camera.main.transform.eulerAngles = ParseVector3(loadEntity.cameraPositionInfo.rotation); + } + string resourcePath = "Library/LibraryPrefab";