본문 바로가기

Unity3D/API & Library4

Unity DOTS 기술 정리: 2. Burst Compiler 2. Burst CompilerBurst 컴파일러는 유니티의 성능을 끌어올리기 위한 컴파일러 도구이다. C# 코드와 호환되는 최적화된 네이티브 CPU 코드를 작성할 때 필요하다.Burst는 Unity에서 고성능 연산 처리를 위해 도입된 컴파일러로, Unity에서 사용 가능한 C# 코드 컴파일러이다. Burst는 LLVM을 통해 .NET IL( Intermediate Language, 중간 언어)를 대상 CPU 아키텍처에 최적화된 코드로 변환한다.Unity의 Job System을 위해 디자인되었다. 사용 방법은 단순히 클래스에 어트리뷰트로 [BurstCompiler]를 붙이면 된다. 다만 주의사항이 있다면, Burst Compiler를 사용하면 런타임 오류가 발생했을 때 상세 정보를 확인하기 어렵다는 문제.. 2025. 9. 6.
Unity DOTS 기술 정리: 1. Job System 이번에 프로젝트에서 최적화가 필요해 Unity에서 C# Job System과 Burst Compiler를 사용하게 된 일이 있었습니다. 그 내용에 대해 제가 공부한 바를 정리해 놓은 글을 작성하려 합니다. 오류가 있다면 자유롭게 지적 부탁드립니다!1. Job SystemJob이란?유니티에서 멀티스레드 프로그램을 손쉽게 작성할 수 있는 방법.일반적인 멀티스레드와 차이점이 있다면, 유니티 자체 시스템을 활용하기 때문에 별도로 스레드를 생성하지 않고 유니티에서 지원하는 워커 스레드를 가져와 사용한다.다만 워커 스레드는 중간에 중단할 수 없기 때문에, System.Thread.Sleep에 대응되는 기능이 없다는 단점이 있다.IJob, IJobParallel을 상속받는 잡을 만들어서, 이를 이용해서 유니티 내에서.. 2025. 9. 6.
deltaTime은 언제 계산될까? deltaTime은 언제 계산될까? 우리가 유니티에서 맨날 사용하는 Time.deltaTime. 이동할 때는 필수고 실시간으로 움직일 땐 여기저기 안 들어가는 곳이 없다. 그런데 Time.deltaTime이 계산되는 기준은 무엇인가? 매 프레임 유니티는 어떤 작업을 수행하고 있으며, Time.deltaTime은 언제 계산하는 걸까? 이에 관해 유니티가 2020.1 버전까지 존재했던 프레임 파이프라인의 문제점과 2020.2 베타 버전에서 개선한 프레임 파이프라인의 순서를 단순화된 형태로 공개한 글이 있어 이를 써보고자 한다. 이 글에 따르면 Unity의 프레임 파이프라인은 현재와 같은 모습을 갖추기까지 많은 변화가 있었다고 한다. 거의 매 릴리즈마다 변화가 있었다고 하니 이전 버전에서는 어떻게 샘플링을 했.. 2023. 7. 15.
ScriptableObject를 저장하는 법: EditorUtility.SetDirty(Object target) 유니티 에셋(ScriptableObject, Monobehaviour)을 저장하기 Unity - Scripting API: EditorUtility.SetDirty (unity3d.com) Unity - Scripting API: EditorUtility.SetDirty You can use SetDirty when you want to modify an object without creating an undo entry, but still ensure the change is registered and not lost. If the object is part of a Scene, the Scene is marked dirty. If the object may be part of a Prefab inst.. 2021. 3. 17.