SerializableDictionaryUnity/C#2021. 5. 12. 18:31
Table of Contents
유니티에서 Dictionary를 인스펙터에서 관찰할수있게 만든 커스텀 Dictionary 스크립트이다.
이런식으로 인스펙터에서 보여준다.
다만, 사용해보니 처음 초기화할때
기존 Dictionary는 new Dictionary<int, float>(originDictionary) 이렇게 초기화하면
originDictionary의 컨텐츠가 카피된 상태로 초기화됐었는데 그 기능은 구현 안돼있다.
Dictionary 딥카피 참고링크 여기서 소개하는 직접 데이터복사 방법을 사용해서 카피할수는 있다.
스크립트 직렬화에대해 좀더 깊이 알고싶을때 참고할 링크
사용해보고 남기는 후기
- 위에 첫링크에서 소스를 두가지 형식으로 배포한다.
- 첫번째는 직접 파일다운로드(구버전)
- 두번째는 패키지 매니져를통한 임포트(유니티 2020이상 신버전)
- 구버전 소스의 경우에는 인스펙터까지는 잘보이나 딕셔너리의 Value를 바꿔도 바뀌지않는다.처음엔 인스펙터에서만 안바뀌는줄 알았지만 로그찍어보니 데이터도 안바뀐다.
- 신버전에서는 이문제가 수정됐으나 기본 Dictionary에서 지원하는 몇 함수들이 더 사라졌다.
- 예를들면 Add할때도 파라미터 두개로 Add(Key, Value)를 할수없고 항상 Pair 구조체를 만들어서 넣어줘야한다
- 꽤 불편할수도 있으니 직접 커스텀해서 추가하거나 다른 더 편한 오픈소스를 찾는것도 좋을것같다.
'Unity > C#' 카테고리의 다른 글
C# System.Random 사용법 (0) | 2021.07.01 |
---|---|
[스크랩]GetInstanceID와 GetHashCode (0) | 2021.06.28 |
ScriptableObject에서 OnEnable() (0) | 2021.06.23 |
LayerMask에 해당 Layer가 포함되는지 확인하기 (0) | 2021.05.28 |
enum Flag(다중선택 enum) (0) | 2021.05.13 |