뒤끝 차트
차트 관리로 단어와 사전 csv를 관리할 수 있다. 뒤끝 콘솔에 등록할 수 있고, 차트 버전도 관리를 할 수 있다.
1)차트 조회
차트 목록을 조회한다.
Backend.Chart.GetChartList();
{
//GetReturnValuetoJSON
rows:
[
// version 1 (old)
// selectedChartFile 이 없는 경우
{
// 차트 uuid
uuid: { S: "538b3a20-7b7a-11e8-8002-f31a1dd37719" },
// 차트 indate
inDate: { S: "2018-06-29T08:56:35.266Z" },
// 차트 설명
chartExplain: { S: "2" },
// 차트명
chartName: { S: "v1" },
// version 정보 (y: version1 , n: version2)
old: { S: "y" }
},
// version 1 (old)
// selectedChartFile 이 있는 경우
{
// 차트에 적용한 파일 정보
selectedChartFile:
{
M:
{
// 차트의 row 수
count: { N: "1000" },
// 차트 파일 uuid
uuid: { S: "780932f0-75fb-11e8-bf7a-cbcc37090d69" },
// 차트 파일 indate
inDate: { S: "2018-06-22T09:05:54.591Z" },
// 차트 파일 명
chartFileName: { S: "222222.xlsx" }
}
},
// 차트 indate
inDate: { S: "2018-06-22T09:05:38.562Z" },
// 차트 uuid
uuid: { S: "6e7b5e20-75fb-11e8-bf7a-cbcc37090d69" },
// 차트 설명
chartExplain: { S: "v1" },
// 차트명 (이 이름으로 PlayerPrefs에 selectedChartFile에 대한 차트 내용이 저장됨)
chartName: { S: "23" },
// version 정보 (y: version1 , n: version2)
old: { S: "y" }
},
// version 2 (new)
// selectedChartFile 이 없는 경우
{
// 차트명
chartName: { S: "gggg" },
// 차트 설명
chartExplain: { NULL: true },
// 적용된 차트 파일 id ( 없는 경우 )
selectedChartFileId: { NULL: true },
// version 정보 (y: version1 , n: version2)
old: { S: "n" }
},
// version 2 (new)
// selectedChartFile 이 있는 경우
{
// 차트명
chartName: { S: "ㅎㅇㅎㅇ" },
// 차트 설명
chartExplain: { NULL: true },
// 적용된 차트 파일 id ( 있는 경우 )
selectedChartFileId: { N: "47" },
// version 정보 (y: version1 , n: version2)
old: { S: "n" }
}
]
}
위와 같이 json 형식의 파일 목록을 불러올 수 있다.
2)차트 내용 조회
서버에 저장된 차트 내용을 조회한다.
Backend.Chart.GetChartContents("selectedChartFileId");
{
rows:
[
{
num: { S: "1" }, // row num(번호)
column1: { S: "contents1" },
column2: { S: "contents2" },
column3: { S: "contents3" }
},
{
num: [Object],
column1: [Object],
column2: [Object],
column3: [Object]
}
]
}
3)차트 저장
차트를 기기 로컬로 다운로드 한다.
Backend.Chart.GetOneChartAndSave("chartFileId");
Backend.Chart.GetOneChartAndSave("chartFileId", "차트 이름");
처음 구현할 때에는 로컬에 빈 csv 파일을 만들고 서버에서 내용을 한줄씩 조회하여 빈 csv를 채우는 방식으로 만들었다. 그러자 문제점이 발생하였는데, csv 파일을 작성할 때 유니티 에디터에서는 잘 작동하지만, 안드로이드 환경에서 작동하지 않았다.
그래서 택한 방법이 차트를 모두 다운로드하는 방법이었다. 차트는 게임이 켜질 때 기존에 있는 차트와 서버에 있는 차트의 버전을 비교한 뒤 최신 버전이 아니라면 다시 다운로드한다.
public class ChartItem
{
public string itemID;
public string itemName;
public string hpPower;
public string percent;
public override string ToString()
{
return $"itemID : {itemID}\n" +
$"itemName : {itemName}\n" +
$"hpPower : {hpPower}\n";
}
}
public void GetOneChartAndSaveTest()
{
string selectedProbabilityFileId = "560";
var bro = Backend.Chart.GetOneChartAndSave(selectedProbabilityFileId);
if (!bro.IsSuccess())
{
Debug.LogError(bro.ToString());
return;
}
JsonData json = bro.FlattenRows();
List<ChartItem> itemList = new List<ChartItem>();
for (int i = 0; i < json.Count; i++)
{
ChartItem item = new ChartItem();
item.itemID = json[i]["itemID"].ToString();
item.itemName = json[i]["itemName"].ToString();
item.hpPower = json[i]["hpPower"].ToString();
itemList.Add(item);
}
foreach (var item in itemList)
{
Debug.Log(item.ToString());
}
Debug.Log("차트 아이템의 총 갯수 : " + itemList.Count);
}
위의 샘플 코드를 참조하여 구현하였다.