App.Class
더보기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
public class App : MonoBehaviour
{
public List<Character> heroList;
public Dictionary<int, CharacterData> dicCharacterData;
public Dictionary<int, CharacterInfo> dicCharacterInfo;
private void Awake()
{
DataManager.GetInstance().LoadData();
this.dicCharacterData = new Dictionary<int, CharacterData>();
this.dicCharacterInfo = new Dictionary<int, CharacterInfo>();
this.heroList = new List<Character>();
}
void Start()
{
this.dicCharacterData = DataManager.GetInstance().GetDicCharacterData();
foreach (var pair in this.dicCharacterData)
{
var hero = CreateHero();
hero.Init(Vector3.zero);
hero.id = pair.Value.id;
hero.char_name = pair.Value.char_name;
hero.job_name = pair.Value.job_name;
hero.res_name = pair.Value.res_name;
this.heroList.Add(hero);
}
foreach (var pair in this.dicCharacterData)
{
var info = new CharacterInfo();
info.id = pair.Value.id;
info.level = 1;
info.name = pair.Value.char_name;
this.dicCharacterInfo.Add(info.id, info);
}
foreach (var pair in this.dicCharacterInfo)
{
Debug.LogFormat("{0},{1}", pair.Value.id, pair.Value.name);
}
this.heroList[1].GetExp();
heroList[1].onLevelup = () =>
{
this.dicCharacterInfo[1].level += 1;
};
foreach (var pair in this.dicCharacterInfo)
{
Debug.LogFormat("{0},{1}", pair.Value.id, pair.Value.name);
}
}
public Character CreateHero()
{
var heroGo = new GameObject();
heroGo.name = "Hero";
heroGo.transform.SetParent(this.transform);
var Character = heroGo.AddComponent<Character>();
return Character;
}
void Update()
{
}
}
|
DataManager.Class
더보기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Newtonsoft.Json;
using System.Linq;
public class DataManager
{
static DataManager instance;
private Dictionary<int, CharacterData> dicCharacterData;
private DataManager()
{
this.dicCharacterData = new Dictionary<int, CharacterData>();
}
public static DataManager GetInstance()
{
if (DataManager.instance == null){
instance = new DataManager();
}
return DataManager.instance;
}
public void LoadData()
{
TextAsset textAsset = Resources.Load("Json/character_data") as TextAsset;
string json = textAsset.text;
this.dicCharacterData = JsonConvert.DeserializeObject<CharacterData[]>(json).ToDictionary(x => x.id, x => x);
}
public Dictionary<int, CharacterData> GetDicCharacterData()
{
return this.dicCharacterData;
}
}
|
Character.Class
더보기
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class Character : MonoBehaviour
{
public int id { get; set; }
public string char_name { get; set; }
public string job_name {get; set;}
public string res_name { get; set; }
public UnityAction onLevelup;
void Start()
{
}
public void Init(Vector3 initPos)
{
this.transform.position = initPos;
}
public void GetExp()
{
Debug.Log("몬스터를 잡아서 30 경험치를 얻었다.");
//if () 대충 조건식 경험치 꽉참 레벨업해야됨
//{ }
//else
//{ }
this.onLevelup();
}
void Update()
{
}
}
|
CharacterInfo.Class
더보기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharacterInfo
{
public int id { get; set; }
public int level { get; set; }
public string name { get; set; }
}
|
CharacterData.Class
더보기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharacterData
{
public int id;
public string char_name;
public string job_name;
public string res_name;
}
|
에러...
에러난코드..
데이터 매니저로 데이터받아와서 역직렬화까지 잘되는데, 대리자연습이나 해볼까하고 썼는데, 에러...
당장은 왜 에러가 났는지 안보이고, 시간만 까먹을거같아서 일단 올려놓고 나중에 검증.
'Unity > Problems' 카테고리의 다른 글
2020-05-25 캐릭터 마우스 클릭 이동시 이벤트 (0) | 2020.05.25 |
---|---|
MainCam과 UICam의 설정문제 (0) | 2020.05.22 |
2020-05-18 유니티 파일 입출력... (0) | 2020.05.18 |
UnityException 오류 (0) | 2020.05.14 |
ArgumentException 오류 (0) | 2020.05.14 |