fix save camera position

This commit is contained in:
lwj
2025-07-22 15:56:22 +09:00
parent 04dc2468f7
commit 2535ce4a1b
3 changed files with 44 additions and 2 deletions

View File

@@ -0,0 +1,19 @@
using UnityEngine;
using System.Collections.Generic;
namespace Octopus.Simulator.Networks
{
public class SaveLoadEntity
{
public List<SimulationModelInfo> modelInfos = new List<SimulationModelInfo>();
public CameraInfo cameraPositionInfo = new CameraInfo();
}
public class CameraInfo
{
public string position;
public string rotation;
}
}

View File

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

View File

@@ -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<SimulationModelInfo> loadInfos = new List<SimulationModelInfo>();
SaveLoadEntity loadEntity = new SaveLoadEntity();
loadInfos = JsonConvert.DeserializeObject<List<SimulationModelInfo>>(jsonData);
// 모든 프로젝트들이 카메라 정보를 저장하도록 변경 된 후에는 catch 문만 남기고 try 문 삭제
try
{
loadInfos = JsonConvert.DeserializeObject<List<SimulationModelInfo>>(jsonData);
}
catch(JsonSerializationException e)
{
loadEntity = JsonConvert.DeserializeObject<SaveLoadEntity>(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";