종잇장
'ECS' 태그의 글 목록 (2 Page)

ECS

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..

Study Log

Unity ECS Study Log - 3

일단 Github에 프로젝트 백업용으로 Repository를 만들었습니다. https://github.com/PieceOfPaper/Unity_ECSStudy GitHub - PieceOfPaper/Unity_ECSStudy: Unity ECS 공부용 프로젝트 Unity ECS 공부용 프로젝트. Contribute to PieceOfPaper/Unity_ECSStudy development by creating an account on GitHub. github.com 1. 샘플 에셋 추가 https://assetstore.unity.com/packages/3d/characters/robots/space-robot-kyle-4696 Space Robot Kyle | 3D 로봇 | Unity Asset S..

Study Log

Unity ECS Study Log - 2

이전에 구현에 대해 대충 감만 잡았고 이번에는 대충 어느 정도 구현해보고 앞으로 어떻게 프로젝트해보면서 공부해봐야 할지 정리를 해봤습니다. 1. 직접 구현해보기 public struct TransformTargetData : IComponentData { public float moveSpeed; } public class TransformTargetAuthoring : MonoBehaviour { public float moveSpeed = 1.0f; } public class TransformTargetBaker : Baker { public override void Bake(TransformTargetAuthoring authoring) { AddComponent(new TransformTarget..