종잇장
'유니티' 태그의 글 목록 (3 Page)

유니티

Unity Entities Tutorial

Unity Entities 1.0.0 Tutorial - Step 4. Cannon Balls

다른 Entity들을 참조하여 Prefab을 생성합니다. 1. "Scripts/Authoring" 폴더에 "CannonBallAuthoring.cs"라는 이름의 새 C# 소스 파일을 만들고 아래 코드를 작성합니다. using Unity.Entities; using Unity.Rendering; using Unity.Mathematics; class CannonBallAuthoring : UnityEngine.MonoBehaviour { class CannonBallBaker : Baker { public override void Bake(CannonBallAuthoring authoring) { // 기본적으로 Component는 0으로 초기화됩니다. // 따라서 이 경우 CannonBall의 Speed..

Unity Entities Tutorial

Unity Entities 1.0.0 Tutorial - Step 3. Tank movement

SystemBase 및 Entities.ForEach 병렬 처리를 소개합니다. 1. "Scripts/Authoring" 폴더에 "TankAuthoring.cs"라는 이름의 새 C# 소스 파일을 만들고 다음 코드를 작성합니다. using Unity.Entities; class TankAuthoring : UnityEngine.MonoBehaviour { class TankBaker : Baker { public override void Bake(TankAuthoring authoring) { AddComponent(); } } } // 포탑에서 했던 것처럼 탱크(큐브)를 식별하는 Tag Component를 만듭니다. struct Tank : IComponentData { } 2. "Tank" GameObj..

Unity Entities Tutorial

Unity Entities 1.0.0 Tutorial - Step 2. Turret Rotation

관리되지 않는 시스템(ISystem), 쿼리, 관용적 foreach의 개념을 소개합니다. "Scripts/Systems" 폴더에 "TurretRotationSystem.cs"라는 새 파일을 만들고 거기에 아래 코드를 작성합니다. using Unity.Burst; using Unity.Entities; using Unity.Mathematics; using Unity.Transforms; // ISystem을 기반으로 하는 관리되지 않는 시스템은 BurstCompile 할 수 있지만 아직 기본값은 아닙니다. // 따라서 [BurstCompile] Attribute를 사용하여 명시적으로 BurstCompile을 선택해야 합니다. // 구조체와 OnCreate/OnDestroy/OnUpdate 함수 모두에 추..

Unity Entities Tutorial

Unity Entities 1.0.0 Tutorial - Step 1. Authoring Scene

ECS데이터가 구성될 Scene을 만듭니다. 1. Scenes 폴더의 SampleScene이 현재 열려 있는지 확인합니다. (다음 단계는 파일로 저장된 Scene에서만 작동합니다.) 2. Hierarchy창에서 마우스 오른쪽 버튼을 클릭하고 New Subscene > Empty Scene...을 선택합니다. 새 Scene의 이름을 "EntityScene"으로 지정하고 Scenes/SampleScene에 넣습니다. 3. Hierarchy창에서 "EntityScene"을 마우스 오른쪽 버튼으로 클릭하고 GameObject > 3D Object > Cube를 선택하고 새 GameObject의 이름을 "Tank"로 지정합니다. Position을 (0,0,0)으로, Rotation을 (0,0,0)으로, Scale..

Unity Entities Tutorial

Unity Entities 1.0.0 Tutorial - Step 0

머릿말 Unity Entities 1.0이 나오고 제대로 된 튜토리얼이 없었는데, ECS Samples Repository에 잘 쓰인 튜토리얼이 있어서 가져와서 써봅니다. 하나하나 따라 해볼 수 있도록 필요한 내용만 가져와서 제가 직접 해보고 번역해보거나 직접 설명을 써보겠습니다. Repository: https://github.com/Unity-Technologies/EntityComponentSystemSamples Entities Menual: https://docs.unity3d.com/Packages/com.unity.entities@1.0 Unity Entities Tutorial 이 심플 튜토리얼에서는 프로젝트는 Entities 패키지 사용 및 관련 DOTS 개념들을 가르쳐줍니다. Entit..

Study Log

Unity ECS Study Log - 8

[BurstCompile] public partial struct ProcessDestroyBulletJob : IJobEntity { public EntityCommandBuffer.ParallelWriter ecb; private void Execute([ChunkIndexInQuery] int chunkIndex, Entity entity, in BulletComponent bullet, in LocalTransform transform) { if (bullet.isDestroyed == true) { if (bullet.HitEffect != Entity.Null) { var hitEffectEntity = ecb.Instantiate(chunkIndex, bullet.HitEffect); ecb..

Study Log

Unity ECS Study Log - 7

1. Bullet, Character 충돌 처리 foreach ((var bullet, var bulletTransform, var bulletHitLayer) in SystemAPI.Query()) { foreach ((var character, var characterTransform, var characterHitLayer) in SystemAPI.Query()) { if (math.distancesq(new Vector2(characterTransform.ValueRO.Position.x, characterTransform.ValueRO.Position.z), new Vector2(bulletTransform.ValueRO.Position.x, bulletTransform.ValueRO.Posit..

Study Log

Unity ECS Study Log - 6

1. Burst Compiler https://docs.unity3d.com/Packages/com.unity.burst@1.8/manual/index.html About Burst | Burst | 1.8.2 docs.unity3d.com 이번에는 Burst Compiler에 대해 조금 더 찾아봤습니다. 유니티에서 소개하는 내용으로는 단점은 전혀 나오지 않아서 어떨 때 써야 하는지 명확하지 않아 좀 더 들여다보기로 했습니다. https://ko.wikipedia.org/wiki/SIMD SIMD - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ko.wikipedia.org Burst Compiler는 C#코드를 SIMD방식으로 바꾸어 Native코드로 만들어주는 컴파일러입니다. 찾..

Study Log

Unity ECS Study Log - 5

1. Unity.Physics 추가 https://docs.unity3d.com/Packages/com.unity.physics@1.0/manual/index.html Unity Physics overview | Unity Physics | 1.0.0-pre.15 Unity Physics overview The Unity Physics package, part of Unity's Data-Oriented Technology Stack (DOTS), provides a deterministic rigid body dynamics system and spatial query system. See the Unity Physics Samples for introductory material, including ..

Study Log

Unity ECS Study Log - 4

1. 이동 구현하기 public partial struct MovableSystem : ISystem { public void OnUpdate(ref SystemState state) { foreach (var (transform, movable) in SystemAPI.Query()) { Vector3 dir = Vector3.zero; if (Input.GetKey(KeyCode.UpArrow)) dir += Vector3.forward; if (Input.GetKey(KeyCode.DownArrow)) dir += Vector3.back; if (Input.GetKey(KeyCode.LeftArrow)) dir += Vector3.left; if (Input.GetKey(KeyCode.RightAr..