Unity DOTS35 UNITY DOTS - EntityQuery에 대해 알아보자 Entity는 Component를 담는 것이자 식별ID를 가지고 있는 녀석이다. 그럼, Query란 무엇일까? 사전적의미는 문의, 의문이다. Query란 특정한 데이터를 보여달라는 요청을 말한다. 즉, 유니티 DOTS에서 EntityQuery란 특정 Component 타입을 가진 Entity리스트를 달라는 의미가 된다. 데이터를 읽거나, 쓰려면 어떤 타입을 가진 Entity를 조회할 것인지 알아야 한다. 이때, 사용하는 것이 바로 EntityQuery라는 것이다. EntityQuery 정의하기 가장 간단하게 EntitiyQuery를 정의하는 방법을 알아보자. RotationQuaternion과 RotationSpeed를 지닌 Entity를 찾는 EntityQuery를 정의해보겠다. EntityQuery .. Unity DOTS/Dots Custom Manual 2022. 7. 27. UNITY DOTS - IJobEntityBatch 에 대해 알아보자 IJobEntityBatch에서 I는 인터페이스를 뜻하는 것일테고 Job은 특정한 단일 작업을 수행하는 작은 단위라는 것이고 Entity는 그릇이고 그럼 Batch는 무엇일까? 사전 의미로는 일괄적으로 처리되는 집단[무리] 동사로는 (일괄처리를 위해) 함께 묶다 Chunk는 여러 Batch가 존재하게 되는데 IJobEntityBatch는 Batch를 활용해서 데이터를 처리한다. IJobEntityBatch 구조체 살펴보기 IJobEntityBatch를 상속받아서 구조체를 정의한다. public struct UpdateTranslationFromVelocityJob : IJobEntityBatch { public ComponentTypeHandle velocityTypeHandle; public Compo.. Unity DOTS/Dots Custom Manual 2022. 7. 27. ECS Sample Project #1 ForEach 살펴보기 전에 유니티 ECS에 대한 컨셉을 모르시는 분은 아래의 링크에서 정보를 얻기를 바란다. [Unity DOTS/Dots Custom Manual] - UNITY DOTS - 유니티의 데이터 지향에 대해 간단하게 알아보자 Entites 관련 패키지 설치 방법은 아래 링크를 참고한다. [Unity DOTS] - Entites 0.51 version 설치 오늘 공부할 내용 샘플프로젝트 1탄에서는 Componet를 만들고 Entity를 생성하고 System으로 Entity를 회전시키는 간단한 로직을 돌리는 간단한 구조를 만들겁니다. 입문 단계의 내용이라 파악하는데 어렵지 않을 것입니다. Scripts 폴더를 만들고 그 안에 1. ForEcah 폴더를 만듭니다. 1. ForEach 폴더 안에 System,.. Unity DOTS/ECS Sample Projtect 2022. 7. 26. Entites 0.51 version 설치 UNITY 2021.3.5F1 Version, Entities 0.51 Version 이다. 프로젝트 만들기 유니티 DOTS는 기존Unity와 다른 파이프라인을 사용한다. 그래서 URP 또는 HDRP 프로젝트로 진행해야 한다. 2D(URP) 또는 3D(URP)에서 프로젝트를 설치한다. 패키지 파일 설치 DOTS는 아직 프리뷰 상태이므로 URL또는 Package name으로 설치해야 한다. 먼저 Project Settings - Package Manager에서 Enable Pre-release Packages를 활성화시킨다. Package Manager의 좌측 상단의 + 버튼을 누르면 Add package by name....를 클릭한다. com.unity.entities 를 입력하고 Add버튼을 눌러 E.. Unity DOTS 2022. 7. 26. Entity Profiler Modules에 대해 알아보자 Entity Profiler 창 열기 Window - Analysis - Profiler를 누르거나, 단축키: Ctrl + 7를 눌러 Profiler 창을 열 수 있다. Profiler 창에서 밑으로 내리면 Entities Memory 와 Entitis Strual Changes 가 보이는데 이것들로 Entity와 관련된 성능을 파악할 수 있다. Entitis Strual Changes ECS프레임워크가 Entitiy와 Component를 생성하거나 제거한 시간을 표시하고 구조적 변경이 발생하면 ECS프레임워크가 Entity와 해당 데이터의 전체 복사본을 다른 Archetype으로 이동하기 때문에 이 정보를 보는 것이 유용할 수 있습니다. Entitis Strual Changes에서 표시하는 항목에는 C.. Unity DOTS/Dots Custom Manual 2022. 7. 26. UNITY DOTS - ICompoentData 에 대해 알아보자. 아래의 글은 유니티 2021.3.5, Entities 0.51.0-preview Version을 기준으로 작성되었습니다. IComponent에 대해 알아보기 전에 Dots의 Component와 기존 Unity의 게임오브젝트의 Compoent의 차이점에 대해 알아보자. DOTS의 Component 기존 유니티의 Component 일반적으로 구조체(Struct)의 인스턴입니다. 클래스의 인스턴스가 될 수도 있긴합니다. 클래스의 인스턴스입니다. 동작(로직)을 가지고 있지 않습니다. 동작(로직)을 가지고 있습니다. Component 인스턴스 DOTS의 Component는 구조체 인스턴스와 클래스의 인스턴스가 될 수 있습니다. 구조체 인스턴스 DOTS에서 성능상의 이점으로 가장 일반적으로 사용되는 방식입니다. 구.. Unity DOTS/Dots Custom Manual 2022. 7. 25. UNITY DOTS - 유니티의 데이터 지향에 대해 간단하게 알아보자 그 동안 Unity는 C# 객체지향 환경에서 동작했다. 객체지향이란 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 객체를 기준으로 프로그램을 설계하는 것을 말합니다. 객체지향은 프로그램을 작성하는 사람에게는 편리했지만 프로그램 입장에서는 불편한 설계였습니다. 객체지향은 게임오브젝트의 정보가 메모리의 여기저기에 중구난방으로 저장되어 CPU가 메모리에서 데이터를 읽어올때 비효율적이었습니다. 그래서 등장한 것이 데이터 지향 방식입니다. 데이터 지향 방식의 설계는 제가 알기로는 Sparse Set과 Archetype 2가지의 방식이 존재하는데 유니티에서는 Archetype 방식을 채택했습니다. 유니티가 선택한 Archetype 데이터 지향방식은 E.. Unity DOTS/Dots Custom Manual 2022. 7. 25. 이전 1 2 3 4 5 다음 💲 추천 글