임의의 데이터를 저장하고 불러와야 할 경우에 오브젝트 내에 컴포넌트로 넣어줍니다.
템플릿으로 만들었기 때문에 다양한 타입들의 변수를 넣을 수 있으며, 사용자가 입력한 KeyName 과 템플릿의 타입을
조합한 것을 Dictionary 에서 Key로 가지고 있기 때문에 잘못된 키이름이나 잘못된 타입으로 가져올 경우
default(T)를 반환하게 하였습니다.
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 | using UnityEngine; using System.Collections.Generic; using System.Text; public class CustomDataConatiner : MonoBehaviour { Dictionary<string, object> Dic_CustomData = new Dictionary<string, object>(); public void SetValue<T>(string _KeyName, T _Value) { StringBuilder builder = new StringBuilder(); builder.Append(_Value.GetType()); builder.Append('_'); builder.Append(_KeyName); Dic_CustomData.Add(builder.ToString(), _Value); } public T GetValue<T>(string _KeyName) { T ReturnValue = default(T); StringBuilder builder = new StringBuilder(); builder.Append(ReturnValue.GetType()); builder.Append('_'); builder.Append(_KeyName); string _Key = builder.ToString(); if (Dic_CustomData.ContainsKey(_Key)) { object objValue = Dic_CustomData[_Key]; return (T)objValue; } #if UNITY_EDITOR Debug.Log("None value"); #endif return ReturnValue; } void OnDestroy() { Dic_CustomData.Clear(); } } | cs |
'Programming > Unity' 카테고리의 다른 글
UGUI 아틀라스 생성 (0) | 2017.09.23 |
---|---|
UGUI를 사용한 캐릭터 리스트 UI (소스코드) (0) | 2017.09.23 |
NGUI 사용 흐르는 문자열 만들기 (2) | 2017.03.27 |
Unity C# Zoom in out (0) | 2015.08.03 |
NGUI HUDText 사용 (2) | 2015.07.30 |