Unity 77

[Unity][개념] Job 시스템 이해, NativeContainer - (2)

※ NativeContainer를 보기 전, Job 시스템의 이해가 필요하다면 하단의 게시물을 참고 https://everyday-devup.tistory.com/97 [Unity] Job 시스템 이해, IJob - (1) ● Unity의 Job 시스템에 대한 이해가 필요하다면, 다음의 게시물을 참고 https://everyday-devup.tistory.com/69 [Unity] DOTS - 프로세스, 스레드, C# Job 시스템 ECS를 알아보기 전 DOTS에 대해 궁금한 점이.. everyday-devup.tistory.com ● NativeContainer ▶ Unity에 Job 시스템은 멀티 스레드 사용 편하게 만들었지만, 일반적으로 Job의 데이터가 메인 스레드에서 접근할 수 없는 메모리에 만..

Unity 2022.09.20

[Unity][개념] Update() vs Job, Burst 성능 비교

ITween은 MonoBehaviour의 Update() 를 통해 Tween이 동작하는데, DotsTween도 동일하게 Update() 를 사용하지만 Job, Burst를 구현하여 동작하는 방식을 사용한다. ITween에서 동작하는 방식이 Job,Burst 보다 성능적으로 좋다면 Job, Burst를 사용할 의미가 없기 때문에 두 방식의 성능 차이를 비교하고자 한다. Update에서 1000000개의 float 데이터를 변경할 때의 성능을 비교함으로써 Job, Burst의 효과를 알아보고자 한다. public class JobMain : MonoBehaviour { int count = 1000000; float[] testValues; private void Start() { testValues = n..

Unity 2022.09.20

[Unity][개념] Job 시스템 이해, IJob - (1)

● Unity의 Job 시스템에 대한 이해가 필요하다면, 다음의 게시물을 참고 https://everyday-devup.tistory.com/69 [Unity] DOTS - 프로세스, 스레드, C# Job 시스템 ECS를 알아보기 전 DOTS에 대해 궁금한 점이 있다면 하단의 링크를 통해 알아 볼 수 있다. https://everyday-devup.tistory.com/67 [Unity] DOTS ( Data Oriented Technology Stack ) ● DOTS란? ▶ Unity를 통해.. everyday-devup.tistory.com ● Unity의 Job 시스템을 사용했을 때의 장점을 확인 하고 싶다면, 다음의 게시물을 참고 https://everyday-devup.tistory.com/9..

Unity 2022.09.20

[Unity][개념] DOTS - 프로세스, 스레드, C# Job 시스템

ECS를 알아보기 전 DOTS에 대해 궁금한 점이 있다면 하단의 링크를 통해 알아 볼 수 있다. https://everyday-devup.tistory.com/67 [Unity] DOTS ( Data Oriented Technology Stack ) ● DOTS란? ▶ Unity를 통해 멀티스레딩과 퍼포먼스 향상이 가능한 차세대 유니티 기반 기술이다. ▶ ECS, Job System, Burst Compiler 의 각 고유한 기능들을 사용하여 DOD ( Data-Oriented Design )을 구현 하.. everyday-devup.tistory.com Unity의 Job System을 이해하기에 앞서 기본이 되는 프로세스, 스레드의 개념을 알아보고, Job 시스템이 무엇인지와 사용법을 설명하고자 한다..

Unity 2022.09.20

[Unity][개념] 잡 시스템(Job System)_2

https://docs.unity3d.com/kr/current/Manual/JobSystem.html C# 잡 시스템 개요 C# 잡 시스템의 동작 방식 Unity C# 잡 시스템을 통해 사용자는 나머지 Unity 기능과 잘 연동하고 수정 코드 작성을 용이하게 해주는 멀티스레드 코드를 작성할 수 있습니다. 멀티스레드 코드를 작성하면 성능이 향상되는 이점을 누릴 수 있으며, 프레임 속도도 대폭 개선됩니다. 버스트 컴파일러를 C# 잡과 함께 사용하면 코드 생성 품질이 개선되며, 모바일 디바이스의 배터리 소모량도 크게 감소합니다. C# 잡 시스템의 핵심은 Unity의 내부 기능(Unity의 네이티브 잡 시스템)과 통합된다는 점입니다. 사용자가 작성한 코드와 Unity는 동일한 워커 스레드를 공유합니다. 이러한..

Unity 2022.09.20

[Unity][개념] 잡 시스템(Job System)

개념 유니티에서 안전한 멀티스레딩을 구현하는 시스템 스레드를 별도로 생성하지 않으며, 유니티의 워커스레드에 작업을 지시할 수 있게 한다. 잡 대기열에 잡을 배치하면 워커 스레드가 잡 대기열에서 항목을 가져와 실행한다. Native Container를 이용해 잡의 수행 결과를 메인 스레드와 공유한다. 버스트 컴파일러를 이용하여 추가적인 성능 향상을 기대할 수 있다. 장점 다수의 작은 작업들을 처리하기에 좋으며, 속도가 빠르다. 스레드를 추가로 만들고 관리하지 않아도 되므로 메모리를 절약할 수 있다. 유니티 콘솔을 이용해 디버깅할 수 있다. 메인 스레드의 데이터를 잡의 스택에 깊은 복사를 하여 복사본으로 사용하므로 Race Condition이 발생하지 않는다. 단점 워커 스레드를 이용하기 때문에 일반 스레드..

Unity 2022.09.20

[Unity][방법] 멀티스레드에서 unity 오브젝트 참조 방법

유니티엔진에서는 기본적으로 모든 CPU 연산이 메인 스레드에서 이루어진다. 그렇다고 다중 스레드를 사용할 수 없다는 것은 아니지만 메인 스레드가 아닌 다른 스레드에서 유니티의 메인 로직에 접근할 수 없도록 막혀있다. 다시 말해, 다른 스레드에서는 게임오브젝트, 컴포넌트 등에 접근하면 에러가 발생한다. 다른 스레드에서 유니티 메인 로직에 접근해야 한다면 MainThreadDispatcher 등을 사용하여 private async void TaskTest() { await Task.Run(() => { MainThreadDispatcher.Instance.Enqueue(() => transform.Translate(1f, 0f, 0f)); }); } 이렇게 작성하면 된다.

Unity 2022.09.20

[Unity][개념] 렉트 트랜스폼(Rect Transform)

렉트 트랜스폼(Rect Transform) 렉트 트랜스폼은 UI에서 사용되는 Transform입니다. 렉트 트랜스폼에는 Width, Height, Anchors, Pivot의 속성을 가지고 있습니다. Width : UI의 넓이를 나타냅니다. Height : UI의 폭을 나타냅니다. 앵커(Anchors) 앵커는 씬뷰에서 네게의 삼각형 손잡이 모습으로 표시되며, 부모로부터의 기준을 나타냅니다. 스크린이 리사이징(Resizing)될 때 앵커를 기준으로 UI의 위치, 크기가 변경됩니다. 앵커의 x, y는 0 ~ 1 사이의 비율 값으로 설정됩니다. 앵커의 x값은 0일때 부모의 가장 좌측, 1일때 부모의 가장 우측으로 설정됩니다. 앵커의 y값은 0일때 부모의 가장 하단, 1일때 부모의 가장 상단으로 설정됩니다. 다..

Unity 2022.09.19

[Unity][개념] 캔버스(Canvas)

목차 캔버스 특징 Canvas Renderer Mode Canvas Scaler UI Scale Mode Reference Pixels Per Unit Graphic Raycaster Rect Transform 앵커 피벗 포지션 Rect-Transform 앵커의 Min, Max 1. Min = Max인 경우 2. Min != Max 인 경우 3. X, Y 중 하나는 Min != Max 인 경우 앵커 프리셋 유니티 공식 매뉴얼 https://docs.unity3d.com/kr/current/Manual/UnityManual.html Scripting Overview http://www.devkorea.co.kr/reference/Documentation/ScriptReference/index.html 캔버..

Unity 2022.09.19