버전: 2023.2+
ListView 없이 리스트에 바인딩할 수 있습니다.이렇게 하려면 각 요소를 직렬화된 오브젝트의 배열에 있는 항목에 바인딩하고 배열 크기 값을 추적합니다.실행 취소 또는 재설정 작업과 같은 특정 상황에서는 배열 크기가 변경될 수 있습니다.
이 예는 ListView를 사용하지 않고 리스트에 바인딩하는 방법을 보여줍니다.
이 예제에서는 TexturePreviewElements 리스트를 생성하고 그 리스트를 Texture2D 오브젝트의 기본 리스트에 바인딩합니다.
예시를 통해 생성되는 완전한 파일은 이 GitHub 저장소에서 찾을 수 있습니다.
이 가이드는 Unity 에디터, UI 툴킷, C# 스크립팅에 익숙한 개발자용입니다.시작하기 전에 먼저 다음을 숙지하십시오.
리스트가 포함된 C# 클래스를 만듭니다.이 리스트가 바인딩 타겟입니다.
bind-to-list-without-ListView
라는 이름으로 만듭니다.TexturePackAsset.cs
라는 이름의 C# 스크립트를 생성하고 해당 콘텐츠를 다음과 같이 바꿉니다.C#을 사용해 2D 텍스처 에셋에 대한 레퍼런스를 나타내는 커스텀 컨트롤을 생성하여 USS로 스타일을 지정합니다.
Editor
라는 이름의 폴더를 만듭니다.TexturePreviewElement.cs
라는 이름의 C# 스크립트를 생성합니다.TexturePreviewElement.cs
의 콘텐츠를 다음으로 바꿉니다.Resources
라는 이름의 폴더를 만듭니다.texture_preview_element.uss
라는 이름의 StyleSheet를 생성하고 콘텐츠를 다음으로 바꿉니다.에셋을 생성하는 C# 스크립트로 커스텀 에디터를 생성합니다.
UI의 TexturePreviewElements
수가 변경될 때 텍스처 리스트의 크기를 변경하려면 SetupList()
메서드를 호출하고 직렬화된 리스트의 항목 리스트를 살펴봅니다.
텍스처 리스트에 각 TexturePreviewElement
를 바인딩하려면, 프로퍼티 이름을 TexturePackAsset.textures
로 지정하여 BindProperty()
를 호출합니다.
TexturePackEditor.cs
라는 이름의 C# 스크립트를 생성하고 해당 콘텐츠를 다음과 같이 바꿉니다.texture_pack_editor.uxml
이라는 UI 문서를 생성하고 해당 콘텐츠를 다음과 같이 바꿉니다.TexturePackAsset.textures
오브젝트의 프로퍼티가 변경됩니다.팁:텍스처를 임포트해서 리스트의 다른 항목에 할당하려면 무료 Playground 에셋 스토어 플러그인을 사용해 보십시오.