DOTS – EntitesSample (3)

13. Custom2DTransforms Transform2DAuthoring.cs Transform2DAuthoring 클래스의 주요 목표는 기존 Unity의 Transform 시스템을 사용하지 않고, ECS(Entity Component System)에서 동작하는 최적화된 커스텀 2D 트랜스폼 시스템을 구현하는 것 MovementSystem.cs 커스텀 2D 트랜스폼 데이터(LocalTransform2D)를 사용하여 객체를 움직이고 크기 및 회전을 조정하는 시스템을 구현 LocalToWorld2DSystem.cs LocalTransform2D 데이터를 기반으로 각 엔티티의 월드 공간(LocalToWorld 변환 행렬)을 계산합니다. 추가적으로 부모-자식 관계를 고려하여 계층 구조를 […]

DOTS – EntitesSample (3) 더 읽기"

DOTS – EntitesSample (2)

8. HelloCube_GameObjectSync Directory.cs Directory 클래스는 게임 오브젝트 및 UI 요소에 대한 중앙 관리를 담당합니다. 여러 시스템이 이 클래스를 통해 게임 오브젝트나 UI 요소에 접근할 수 있기 때문에 객체 관리가 용이해집니다. 프로젝트가 커질 경우 Directory 클래스를 통해 관리되는 객체들이 많아질 수 있습니다. 이때 더 많은 디렉토리 클래스를 만들어 객체들을 분류할 수 있습니다. 예를 들어, 하나는 UI

DOTS – EntitesSample (2) 더 읽기"

DOTS – EntitesSample (1)

1. HelloCube_MainThreadSubscene RotationSystem.cs OnCreate()는 시스템이 생성될 때 호출됩니다. RequireForUpdate를 사용하여 시스템 업데이트를 위해 ExecuteMainThread 컴포넌트가 필요함을 선언합니다. OnUpdate()는 시스템이 업데이트될 때 호출됩니다. SystemAPI.Query<RefRW<LocalTransform>, RefRO<RotationSpeed>>를 사용하여 LocalTransform과 RotationSpeed 컴포넌트를 가진 모든 엔티티를 반복합니다. transform은 LocalTransform 컴포넌트의 읽기-쓰기 참조를 나타내고, speed는 RotationSpeed 컴포넌트의 읽기 전용 참조를 나타냅니다. transform.ValueRW를 업데이트하여 회전 속도(RadiansPerSecond)와 deltaTime을 기반으로 엔티티를 회전시킵니다. RotationSpeedAuthoring.cs Baker

DOTS – EntitesSample (1) 더 읽기"

DOTS 정리 (4) – 튜토리얼 실습

https://learn.unity.com/tutorial/660ffc54edbc2a1b0887d45e?uv=6&projectId=660ffcd3edbc2a162b7baa27#66ceb510edbc2a02913174e1 엔티티로 변환 ECS(Entity Component System)와 DOTS(Data-Oriented Technology Stack)를 사용하여 Tank 오브젝트를 정의하고 이를 엔티티로 변환하는 작업 TankAuthoring.cs Baker 클래스는 Baker를 상속받아 TankAuthoring MonoBehaviour를 엔티티로 변환하는 로직을 정의 Bake 메서드에서 authoring 객체의 Turret과 Cannon을 엔티티로 변환하고, Tank 컴포넌트를 추가합니다. GetEntity 메서드는 특정 GameObject를 입력으로 받아 해당 오브젝트를 엔티티로 변환 Tank 구조체는 IComponentData를 구현하여 엔티티에 부착할

DOTS 정리 (4) – 튜토리얼 실습 더 읽기"

DOTS 정리 (3) – HelloCube로 엔티티 알아보기

이전 글 HelloCube로 엔티티 알아보기 Entity는 Unity 씬에 직접 추가할 수 없지만 Unity 씬이 다른 씬 내부에 하위 씬으로 중첩된 경우 베이킹이라고 하는 프로세스를 통해 하위 씬의 각 게임 오브젝트에 해당하는 Entity가 생성됩니다. 런타임 시 하위 씬이 로드되면 게임 오브젝트가 아닌 베이크된 Entity만 로드됩니다. Baking과 SubScene Scene은 엔티티를 직접 포함할 수 없지만 SubScene에서 Entity를 로드할

DOTS 정리 (3) – HelloCube로 엔티티 알아보기 더 읽기"

DOTS 정리 (2) – Unity Job 시스템 시작하기

https://learn.unity.com/tutorial/660ffc54edbc2a1b0887d446?uv=6&projectId=660ffcd3edbc2a162b7baa27#66ceb506edbc2a03a1163ee9 학습 참고 문서 공식 Sample Project 링크 https://github.com/Unity-Technologies/EntityComponentSystemSamples/tree/master 멀티코어 CPU를 활용하기 위해 Job을 사용하는 기본적인 방법 STEP – 싱글 스레드 잡을 생성, 예약, 완료 – 병렬 잡을 생성, 예약, 완료 – 다른 잡에 종속되는 잡을 예약 – NativeArrays를 사용 파란 큐브와 빨간 큐브를 각각 Seeker와 Target으로 정하고 각Seeker은 가장 가까운 Target으로 이어지는 디버그 라인을

DOTS 정리 (2) – Unity Job 시스템 시작하기 더 읽기"

DOTS 정리 (1) – 개념 및 이론

Unity DOTS에 대하여 Data-Oriented Technology Stack (데이터 지향 기술 스택) 개요 Unity DOTS는 하드웨어 특성과 제약 조건을 최대한 활용할 수 있도록 지원하는 소프트웨어 아키텍처 OOP(객체 지향 프로그래밍) 접근 방식과 달리 DOD(데이터 지향 디자인)를 사용하며 코드와 데이터에 중점을 둔 접근 방식 DOTS를 사용하면 멀티코어 프로세서를 활용하여 데이터 처리를 병렬화할 수 있음 기능 및 패키지 C# Job

DOTS 정리 (1) – 개념 및 이론 더 읽기"

Unity Addressables – Get started (Docs)

Addressables https://docs.unity3d.com/Packages/com.unity.addressables@2.3/manual/index.html Addressables package The Addressables package provides tools and scripts to organize and package content for your application, and an API to load and release assets at runtime.(Addressables package는 애플리케이션의 콘텐츠를 조작하고 패키지화하는 도구와 스크립트를 제공하며, 런타임에 자산을 로드하고 해제할 수 있는 API를 제공합니다.) When you make an asset Addressable, you can use that

Unity Addressables – Get started (Docs) 더 읽기"

Unity URP Input.hlsl

Universal RP 17.0.3 include “Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl” 내부에 input이 포함됨 include “Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl” Input.hlsl 1. 헤더 정의 및 보호구문 헤더 파일을 여러 번 포함하는 것을 방지 UNIVERSAL_INPUT_INCLUDED가 정의되지 않은 경우에만 코드가 실행되도록 합니다. 2. 패키지 및 설정 파일 포함 URP의 설정 및 구성을 정의하는 파일을 포함 이 파일에는 URP에서 사용하는 여러 가지 상수 값과 설정이 정의되어 있습니다. 3.

Unity URP Input.hlsl 더 읽기"

위로 스크롤