본문 바로가기

반응형

Unity

(56)
DOTS 학습을 위한 기초 정리 #17 사용자의 입력을 받아 오브젝트 움직이기(IJobForEach) 참고 : ECS에서 엔티티를 생성할 줄 알고, 제일 기초인 IJobForEach에 대해 이해하고 있어야 한다. 사실 아주 간단하게 처리하였지만 많은 고민을 했었지만 제일 시간을 많이 잡아 먹은건 아래와 같았다. 1. 많은 오브젝트에 대해 SIMO를 실현할 수 있을까? -> 사실 ECS의 Job 시스템이 이를 처리하는 역할을 한다. 다만 어떤게 더 효율적일까 고민하였다. 2. SharedComponentData를 적용해볼 수 있을까? -> 조금만 생각해보면 알 수 있는 것인데, 공유된 컴포넌트 데이터는 변경이 최소화 되어야한다. 실시간 입력같은 행위를 했다간 효율이 뚝 떨어진다. 3. 아직 ECS에서는 없는 기능이 많다. 그 없는 기능 중에 "InputSystem"도 있다. -> 어쩌겠는가. 모노비헤비어를..
DOTS 학습을 위한 기초 정리 #16 샘플 학습 - 프리팹 등록과 생성 참고 : 본 문서는 아래 URL의 Unity-Technologies/EntityComponentSystemSamples 을 포함하고 있다는 가정하에 작성되어 있다. https://github.com/Unity-Technologies/EntityComponentSystemSamples Unity-Technologies/EntityComponentSystemSamples Contribute to Unity-Technologies/EntityComponentSystemSamples development by creating an account on GitHub. github.com 첨부파일 : 6.SpawnFromEntity를 따라 작성하고 주석을 달아 분석한 파일 코드 설명 using Unity.Entiti..
DOTS 학습을 위한 기초 정리 #15 엔티티 데이터 접근 - IJobForEach 참고문헌 : https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/entity_iteration_job.html Using IJobForEach | Package Manager UI website Using IJobForEach You can define an IJobForEach Job in a JobComponentSystem to read and write component data. When the Job runs, the ECS framework finds all of the entities that have the required components and calls the Job’s Execute() function for each..
DOTS 학습을 위한 기초 정리 #14 프로젝트에 패키지 다운로드 받기 아주 간단하니 글로 적겠다. 1. Window -> Package Manager 열기 2. Advanced -> Show preview Packages 체크 3. Burst Install 4. Entities Install 5. Hybrid Renderer Install 6. Jobs Install 7. Mathematics Install 1분 30초 전후로 설명이 나온다. https://www.youtube.com/watch?v=ILfUuBLfzGI&t=158s 끝. 이제 사용면된다.
DOTS 학습을 위한 기초 정리 #13 System Update Order System Update Order 구성 요소 시스템 그룹을 사용하여 시스템의 업데이트 순서를 지정합니다. 시스템의 클래스 선언에서 [UpdateInGroup]특성을 사용하여 그룹에 시스템을 배치할 수 잇습니다. 그런 다음 [UpdateBefor] 및 [UpdateAfter] 특성을 사용하여 그룹 내에 업데이트 순서를 지정할 수 있습니다. ECS 프레임워크는 프레임의 올바른 단계에서 시스템을 업데이트하는 데 사용할 수 있는 기본 시스템 그룹을 생성합니다. 그룹 내의 모든 시스템이 올바른 단계에서 업데이트되고 그룹 내의 순서에 따라 업데이트되도록 한 그룹을 다른 그룹에 내포할 수 있습니다. Component System Groups ComponentSystemGroup 클래스는 특정 순서로 함께 업데이트해..
DOTS 학습을 위한 기초 정리 #12 엔티티 명령 버퍼 Entity Command Buffer EntityCommandBuffer 클래스는 두 가지 중요한 문제를 해결합니다 : 당신이 직업 중인 경우 EntityManager에 액세스 할 수 없습니다. EntityManager(엔티티를 생성하기 위해) 액세스하면 삽입 된 모든 배열과 EntityQuery객체 를 무효화 합니다. EntityCommandBuffer 추상화를 사용하면 작업 또는 기본 스레드에서 변경 사항을 대기열에 추가하여 나중에 기본 스레드에 적용할 수 잇습니다. EntityCommandBuffer를 사용하는 방법은 다음과 같습니다. 주 스레드에서 업데이트하는 ComponentSystem 하위 클래스에는 자동으로 호출 할 수있는 PostUpdateCommands 클래스가 있습니다. 그것을 사용하..
DOTS 학습을 위한 기초 정리 #11 Job 구성 요소 시스템 JobComponentSystem Automatic job dependency management 종속성을 관리하는 것은 어렵습니다. 이것이 우리가 JobComponentSystem이 자동으로 당신을 위해 자동으로 관리하는 이유입니다 . 규칙은 간단합니다. 서로 다른 시스템의 작업은 동일한 유형의 IComponentData에서 병렬로 읽을 수 있습니다. 작업 중 하나가 데이터에 쓰는 중이면 병렬로 실행할 수 없으며 작업 간 종속성으로 예약됩니다. public class RotationSpeedSystem : JobComponentSystem { [BurstCompile] struct RotationSpeedRotation : IJobForEach { public float dt; public void E..
DOTS 학습을 위한 기초 정리 #10 구성 요소 시스템 ComponentSystem ComponentSystem in Unity (표준 ECS 용어로 시스템이라고도 함)는 엔티티에 대한 연산을 수행합니다. ComponentSystem는 인스턴스 데이터를 포함 할 수 없습니다. 이것을 이전 유니티 시스템의 관점에서 표현하자면, 이것은 이전의 Component 클래스 와 다소 유사 하지만, 방법만 포함한 클래스입니다 . 하나의 ComponentSystem은 EntityQuery 라는 구조체 내에서 정의 된 일치하는 구성 요소 집합으로 모든 엔터티를 업데이트해야 합니다. Unity ECS는 ComponentSystem코드에서 확장 할 수 있는 추상 클래스를 제공합니다 . file : /Packages/com.unity.entities/Unity.Entities/C..

반응형