728x90
유니티엔진에서는 기본적으로 모든 CPU 연산이 메인 스레드에서 이루어진다.
그렇다고 다중 스레드를 사용할 수 없다는 것은 아니지만
메인 스레드가 아닌 다른 스레드에서 유니티의 메인 로직에 접근할 수 없도록 막혀있다.
다시 말해, 다른 스레드에서는 게임오브젝트, 컴포넌트 등에 접근하면 에러가 발생한다.
다른 스레드에서 유니티 메인 로직에 접근해야 한다면 MainThreadDispatcher 등을 사용하여
private async void TaskTest()
{
await Task.Run(() =>
{
MainThreadDispatcher.Instance.Enqueue(() => transform.Translate(1f, 0f, 0f));
});
}
이렇게 작성하면 된다.
728x90
'Unity' 카테고리의 다른 글
[Unity][개념] 잡 시스템(Job System)_2 (0) | 2022.09.20 |
---|---|
[Unity][개념] 잡 시스템(Job System) (0) | 2022.09.20 |
[Unity][팁] AssetStore 그래프, 리스트뷰 URL (0) | 2022.09.19 |
[Unity][개념] 렉트 트랜스폼(Rect Transform) (0) | 2022.09.19 |
[Unity][개념] 캔버스(Canvas) (0) | 2022.09.19 |