Dots35 UNITY DOTS - State Machine(상태 머신) 만들기 #1 개요 EntityComponentSystemSamples의 State Machine 만들기를 분석하는 글이다. 샘플프로젝트는 https://github.com/Unity-Technologies/EntityComponentSystemSamples 로 가면 다운받을 수 있다. 게임 진행방식 Guard는 Waypoint를 순찰한다. Waypoint에 도착하면 잠시 대기를 하고 다음 Waypoint로 이동하는 것을 반복한다. 순찰 중에 원뿔 범위 내에 Player가 존재하면 추격하고 원뿔 범위 밖으로 Player가 도망치면 잠시 대기하다가 다시 Waypoints를 순찰하는 간단한 게임이다. 해당 샘플로 알 수 있는 것들 1. Unity DOTS 에서 조건에 따라 상태가 변경되는 State Machine을 만드는 방법.. Unity DOTS/따라하며 배우기 2022. 8. 5. ECS SampleProject #8 EntityPrefab Hello Cube 부분은 완료되었고 Advanced 폴더에 있는 예제를 뜯어보기로 했다. 해당 기능의 개념보다 예제 자체가 어려운건 건너뛰었다. 이번에 알아볼 내용 이번 글의 핵심은 EntityPrefabReference 라는 것이다. PrefabSpawnerSystem 에서 사용되는 것인데 Unity에서 제공하는 기능으로 Entity를 로드하고 생성하는 것에 최적화된 기능이라고 볼 수 있다. EntityPrefabReference 에 대해 ReadMe 에서는 아래와 같이 설명하는데 사실 이해는 안 간다. 더보기 이 샘플은 엔티티 프리팹을 참조하여 동적으로 로드하고 인스턴스화할 수 있도록 하는 방법을 보여줍니다. 장면에서 PrefabSpawnerAuthoring 구성 요소에는 프리팹에 대한 참조 배열이.. Unity DOTS/ECS Sample Projtect 2022. 8. 4. UNITY DOTS - BlobAsset 예제2 Waypoint 지난 글 다시보기 [Unity DOTS/따라하며 배우기] - UNITY DOTS - BlobAsset 예제1 뒤끝서버에서 데이터 받아와서 처리 BlobAsset은 공유데이터(다수 Entity에서 읽어와서 쓰는 데이터)에 최적화된 타입이다. 공유데이터는 구조체로 만들어서 사용하는 방법보다 BlobAsset 으로 만들어서 사용하는 것이 좋다. 그러니깐, 여러 Entity에서 공유해서 사용하는 데이터는 BlobAsset로 만들어서 사용하는 것이 좋다. 오늘 알아볼 내용 3개의Waypoint를 만들어서 BlobAsset으로 만들고 소환되는 Player Entity에게 연결해서 waypoint를 따라 다니는 간단한 프로그램을 만들 것이다. Blob Asset 구조 만들기 BlobAsset으로 만들 Data와 Bl.. Unity DOTS/따라하며 배우기 2022. 8. 4. UNITY DOTS - Dynamic Buffer Component 에 대해 알아보자. 관리되는 데이터가 저정된 Class 타입에서는 Job, BurtComplie, 멀티스레드 실행 등을 할 수 없다. 이러한 것들을 사용하려면 관리되지 않는 데이터만 저장한 Struct를 사용해야 한다. 즉, List 같은 것을 쓸 수가 없다는 의미인데 그래서 불편하다. 그래서 존재하는 것이 바로 Dynamic Buffer Component 이다. Dynamic Buffer Component 정의하기 // 청크에 16개의 저장 공간을 만든다 [InternalBufferCapacity(16)] public struct MyElement : IBufferElementData { public int Value; } DymicBufferComponent는 IBufferElementData를 상속받아야 한다. Att.. Unity DOTS/Dots Custom Manual 2022. 8. 2. UNITY DOTS - BlobAsset 예제1 뒤끝서버에서 데이터 받아와서 처리 뒤끝서버의 차트에서 데이터를 받아온 다음에 class에 저장해서 사용하면 멀티스레드에서 동작할 수 없다. 그래서 BlobAsset으로 저장해서 멀티스레드에서 동작하도록 만들어야 한다. 선행 학습 [Unity DOTS/Dots Custom Manual] - UNITY DOTS - BLOB assets 에 대해 알아보자 뒤끝서버 관련 지식 필요 [프로그램 강좌/ 유니티 + 뒤끝서버] - 뒤끝서버 + 유니티 강좌 #1 시작하기 뒤끝서버 관련 지식은 꼭 알 필요는 없습니다. 서버에서 데이터를 받아와서 BlobAsset으로 만드는 과정에 대해 설명합니다. 뒤끝서버 관련 작업 뒤끝서버 관련 내용은 이 글의 주요 주제가 아니므로 빠르게 넘어가겠습니다. 1. 뒤끝서버 Initialize https://www.theba.. Unity DOTS/따라하며 배우기 2022. 8. 2. UNITY DOTS - BLOB assets 에 대해 알아보자 BLOB assets은 무엇에 쓰는 물건일까? Blob 자산은 스트리밍에 최적화된 바이너리 데이터 조각입니다. 데이터를 Blob 자산에 기록하면 효율적으로 로드할 수 있고 Entity에 저장된 Compoent에서 참조할 수 있는 형식으로 데이터를 저장합니다. 제한 사항 Blob Asset은 구조체의 구성요소처럼 관리되는 데이터가 포함되면 안 됩니다. (List 같은 것들) 또한 런타임에서 변경되지 않는 읽기 전용 데이터만 포함되어야 합니다. BlobAsset을 생성하는 방법 BlobBuilder 만들기 BlobBuilder.ConstructRoot로 Asset 루트 만들기 데이터 채우기 BlobBuilder.CreateBlobAssetReference 로 BlobAssetReference 만들기 Blob.. Unity DOTS/Dots Custom Manual 2022. 7. 31. ECS SampleProject #7 IJobEntity 원래 7번은 7. IJobChunkStructBased 이지만 최근 버전에서는 IJobChunkStructBased가 IJobEntityBatch로 대체되어 건너뛰고 IJobEntity로 바로 넘어갑니다. 또한 9. ForEach_ISystem는 BurstCompile을 할 수 있는 구조체를 사용하는 예제인데 최신 버전부터 SystemBase의 OnUpdate에서도 구조체의 경우 BurstComplie을 사용할 수 있게 되었으므로, 9. ForEach_ISystem도 생략합니다. 선행 학습 [Unity DOTS/Dots Custom Manual] - UNITY DOTS - IJobEntity Jobs 에 대해 알아보자 이전 글 보기 [Unity DOTS/ECS Sample Projtect] - ECS S.. Unity DOTS/ECS Sample Projtect 2022. 7. 31. 이전 1 2 3 4 5 다음 💲 추천 글