[Unity] 옷입히기 프로토 개발일지 #4
뭔가 살짝 이상해보이기는 하는데 그래도 정상 작동하고 있음.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
public class Data_Manager : MonoBehaviour
{
public Data nowData = new Data();
private string Data_Path;
private string Data_name;
private bool Save_Delay = false;
private void Awake()
{
//게임오브젝트가 다른 Scnen으로 전환되어도 파괴되지 않도록 함
DontDestroyOnLoad(this.gameObject);
//초기 자금값 설정
nowData.Money = 5000;
Data_Path = Application.persistentDataPath + "/";
Data_name = "Player_Data";
string PL_Data = File.ReadAllText(Data_Path + Data_name);
nowData = JsonUtility.FromJson<Data>(PL_Data);
Debug.Log("First " + PL_Data);
}
private void Update()
{
if (Save_Delay == false)
{
Save();
}
//정상 작동 확인용 임시 돈치트
if (Input.GetKeyDown(KeyCode.E))
{
nowData.Money += 500;
}
}
private void Save()
{
string PL_Data = JsonUtility.ToJson(nowData);
File.WriteAllText(Data_Path + Data_name, PL_Data);
Debug.Log(PL_Data);
Save_Delay = true;
Invoke("Save_Delay_ON", 3f);
}
private void Save_Delay_ON()
{
Save_Delay = false;
}
}
github : https://github.com/H0NEYC0RN/personal-project-2
GitHub - H0NEYC0RN/personal-project-2: 옷입히기 게임 프로토타입
옷입히기 게임 프로토타입. Contribute to H0NEYC0RN/personal-project-2 development by creating an account on GitHub.
github.com
맨날 올리는거 까먹는 깃허브..🥲
0812 구현
- JSON 외부 경로로 저장
- 외부의 JSON 불러와서 데이터로 사용
어찌저찌 JSON 저장 / 불러오기 성공.. 했으나, 메모리 문제가 두두둥장.
JSON 저장 / 불러오기 자체는 성공했는데, 실시간으로 저장하는걸 구현하고 싶어서 짱구를 굴려보았다.
그러다가 문득! 그냥 이거 Update에 때려박으면 되는거 아닌가..? 하고 때려박았다가..
실행할때마다 유니티가 700mb 이상의 메모리를 먹으면서 뻗어버리는 현상이 발생했다..🤣
그래서 일단 임시방편으로 저장 주기를 3초 마다 한 번 으로 조정했다. 향후 메모리 문제가 계속 발생한다면 이 주기를 늘리거나, 혹은 다른 자동저장 방법을 찾아봐야 할 것 같다.
JSON 형식은 고사하고, class 형식의 데이터도 처음 써봐서 헷갈리는게 너무 많았고,
기본 개념이 잡혀져 있지 않는 상태에서 따라하기 게시글을 보니 하나도 이해가 가지 않고..
머리만 싸매면서 한참을 빙빙돌았던 것 같다..
근데 오늘까지는 JSON으로 머리아팠는데 이제는 실시간 타이머를 어떻게 구현할지를 고민해봐야겠다..
지금 당장 생각나는 계획은..
1. 탐사 버튼을 누른다.
2. 탐사 버튼을 누른 순간의 시간을 int 로 전환
3. 탐사 완료 시간 int = 탐사 시작 시간 int + 일정 시간 int
- 현재 시간보다 탐사 완료 시간이 커지는 순간 탐사 완료로 간주
4. 탐사 완료 처리
이렇게인데... 이제 이걸 어떻게 int로 변환하고, 어떻게 가져올건지를 고민해보고
안되면 또 다른 우회로를 찾아봐야겠다.. 요것만 해치우면 어쨌든간에 어려운 부분은 다 끝나간다!
아자자 파이팅!
참고자료
-
[유니티] Json으로 저장 불러오기 구현하기 1 - Unity Save And Load
해당 내용은 유튜브 영상으로도 보실 수 있습니다. 오늘 해볼 것은 Json을 활용해서 저장 불러오기를 슬롯방식으로 구현해 볼 것이다. Json이 기본적으로 사용되기 때문에, 만약 아직 유니티에서 J
coding-of-today.tistory.com
C# 파일 입출력 5 - Serialization (직렬화) 클래스, 구조체(복합 데이터) 형식 입출력을 위한
BinaryWriter, BinaryReader, StreamWriter, StreamReader은 기본 데이터 형식만 스트림에 쓰고 읽을 수 있습니다. 그래서 직렬화란 메커니즘을 제공하는데 직렬화는 객체의 필드에 저장된 값을 메모리에 저장
qzqz.tistory.com