Unity : Custom Dictionary Script

2023. 7. 14. 11:20·Unity/Tip
반응형

안녕하세요 개발자 여러분! 오늘은 사전을 직렬화하고 Unity 인스펙터에 노출시키는 매우 효과적인 Unity 스크립트를 소개해드리겠습니다. 이 스크립트는 Unity의 직렬화 메커니즘을 활용하고 사전 데이터를 더 시각적이고 직관적인 방법으로 효율적으로 관리하고 싶은 개발자들에게 매우 유용합니다.

이 스크립트는 GitHub에서 가져온 것으로 여기에서 사용할 수 있으며, 이 블로그 포스트에서는 이 스크립트의 세부 사항과 Unity 프로젝트에 통합하는 방법에 대해 살펴보겠습니다.

스크립트 분석

이 스크립트는 우선 UDictionary 클래스로 구성되어 있으며 두 개의 중첩 클래스 SplitAttribute와 Drawer가 있습니다. SplitAttribute는 Unity의 PropertyAttribute를 상속받은 클래스로 사전의 키와 값의 레이아웃 설정을 관리하기 위해 사용되며, Drawer는 UDictionary와 SplitAttribute의 사용자 정의 속성 드로어입니다. 이 드로어는 Unity의 내장 SerializedProperty를 활용하여 사전을 Unity 인스펙터에서 표시합니다.

그 다음, 이 스크립트는 UDictionary<TKey, TValue> 클래스를 정의하며 이 클래스는 UDictionary를 상속받고, IDictionary<TKey, TValue>를 구현하며, Unity의 내장 [SerializeField] 속성을 사용하여 사전의 키와 값을 직렬화합니다. 이를 통해 Unity의 직렬화 시스템이 플레이 모드를 종료할 때에도 자동으로 사전 데이터를 저장하고 로드할 수 있습니다.

Unity 프로젝트에서 이 스크립트 사용하기

이 스크립트를 Unity 프로젝트에 통합하는 것은 스크립트를 복사하고 새로운 C# 파일을 만들어 해당 파일에 스크립트를 붙여넣는 것만으로 간단합니다. 그런 다음 Unity 인스펙터에서 노출되는 사전을 사용하고 싶은 스크립트에서 사전을 UDictionary<TKey, TValue>로 정의할 수 있습니다.

예를 들어, 문자열 키와 정수 값이 있는 사전을 사용하려면 다음과 같이 정의할 수 있습니다:

public UDictionary<string, int> myDictionary;

이제 이 UDictionary는 스크립트가 게임 오브젝트에 첨부될 때 Unity 인스펙터에서 표시되며, 인스펙터에서 직접 항목을 추가, 편집 또는 제거할 수 있습니다.

마무리

이 스크립트는 Unity 에디터의 기능을 크게 향상시켜 인스펙터에서 직접 사전 데이터를 조작할 수 있도록 합니다. 게임 및 애플리케이션에서 복잡한 데이터 관계를 관리하는 데 좋은 도구입니다.

이 스크립트를 프로젝트에 통합하는 방법 및 작업 흐름을 간소화하는 데 도움이 된 경험 및 스크립트에 대한 수정 사항을 아래 댓글 섹션에서 공유해주시면 감사하겠습니다. 즐거운 코딩하세요!

저작자표시 비영리 변경금지 (새창열림)

'Unity > Tip' 카테고리의 다른 글

오브젝트 자연스럽게 이동하기 : Mathf.PingPong  (0) 2023.08.04
Unity Unique ID 스크립트  (0) 2023.07.14
Unity로 안드로이드 앱 개발 시 권한 설정 방법  (1) 2023.07.07
Unity에서 스마트폰 화면 항상 켜지도록 설정하기  (0) 2023.07.07
Unity 확장형 함수  (1) 2023.06.18
'Unity/Tip' 카테고리의 다른 글
  • 오브젝트 자연스럽게 이동하기 : Mathf.PingPong
  • Unity Unique ID 스크립트
  • Unity로 안드로이드 앱 개발 시 권한 설정 방법
  • Unity에서 스마트폰 화면 항상 켜지도록 설정하기
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (730)
      • 스마트팜 (1)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (19)
      • 일기장 (4)
      • 파이썬 (131)
        • Basic (42)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (5)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    unity
    C#
    devlife
    리뷰관리
    믈레코비타멸균우유
    rtsp
    Python
    스마트스토어리뷰
    learntocode
    셀레니움
    programmerlife
    ipcamera
    cv2
    리스트
    쇼핑몰리뷰
    appdevelopment
    긴유통기한우유
    list
    카페24리뷰이관
    상품 리뷰 크롤링
    리뷰이관
    카페24리뷰
    codingcommunity
    스크립트 실행 순서
    programming101
    codingtips
    유니티
    라떼우유
    파이썬
    스크립트 실행
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
Unity : Custom Dictionary Script
상단으로

티스토리툴바