DataManager
더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;
using System.Linq;
public class DataManager
{
static DataManager instance;
private Dictionary<int, MissionData> dicMissionData;
private DataManager()
{
this.dicMissionData = new Dictionary<int, MissionData>();
}
public static DataManager GetInstance()
{
if (DataManager.instance == null)
{
instance = new DataManager();
}
return DataManager.instance;
}
public void LoadData()
{
TextAsset textAsset = Resources.Load("Json/mission_data") as TextAsset;
string json = textAsset.text;
this.dicMissionData = JsonConvert.DeserializeObject<MissionData[]>(json).ToDictionary(x=>x.id, x=>x);
}
public MissionData GetMissionDataById(int id)
{
return this.dicMissionData[id];
}
public Dictionary<int, MissionData> GetDicMissionData()
{
return this.dicMissionData;
}
}
|
Test.Class
더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
using Newtonsoft.Json;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEngine;
public class Test : MonoBehaviour
{
private string GamaDataFileName = "/mission_info.json";
public Dictionary<int, MissionInfo> dicMissionInfo;
private void Awake()
{
}
private void Start()
{
string filePath = Application.persistentDataPath + GamaDataFileName;
this.dicMissionInfo = new Dictionary<int, MissionInfo>();
Debug.Log(filePath);
if (File.Exists(filePath))
{
Debug.Log("불러오기 성공!");
string FromJsonData = File.ReadAllText(filePath);
this.dicMissionInfo = JsonConvert.DeserializeObject<MissionInfo[]>(FromJsonData).ToDictionary(x => x.id, x => x);
}
else
{
Debug.Log("새로운 파일 생성");
DataManager.GetInstance().LoadData();
var MissionData = DataManager.GetInstance().GetDicMissionData();
foreach (var pair in MissionData)
{
var info = new MissionInfo(pair.Key,0);
this.dicMissionInfo.Add(info.id, info);
}
//int length = this.dicMissionInfo.Count;
//MissionInfo[] arrInfo = new MissionInfo[length];
//int inx = 0;
//foreach (var pair in this.dicMissionInfo)
//{
// arrInfo[inx++] = pair.Value;
//}
string ToJsonData = JsonConvert.SerializeObject(this.dicMissionInfo);
File.WriteAllText(filePath, ToJsonData);
Debug.Log("저장완료");
}
}
}
|
출력값
첫번째.
Application.persistentDataPath API를 쓰면 경로가
C:\Users\tjoeun\AppData\LocalLow\DefaultCompany\Study_007
이것인걸 모르고 삽질...
두번째.
JsonConvert.SerializeObject API 안쓰고, JsonUitlity.ToJson을 써놓아서,
총 1시간 반동안 삽질..
JsonUitlity.ToJson -> 찾아보자
'Unity > Problems' 카테고리의 다른 글
MainCam과 UICam의 설정문제 (0) | 2020.05.22 |
---|---|
2020-05-18 유니티 복습 (파일 입출력, 람다식, 대리자) (0) | 2020.05.18 |
UnityException 오류 (0) | 2020.05.14 |
ArgumentException 오류 (0) | 2020.05.14 |
생명주기로 인한 NullReferenceException (0) | 2020.05.14 |