Unity

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

usingsystem 2022. 9. 20. 08:53
728x90

유니티엔진에서는 기본적으로 모든 CPU 연산이 메인 스레드에서 이루어진다.

그렇다고 다중 스레드를 사용할 수 없다는 것은 아니지만

메인 스레드가 아닌 다른 스레드에서 유니티의 메인 로직에 접근할 수 없도록 막혀있다.

다시 말해, 다른 스레드에서는 게임오브젝트, 컴포넌트 등에 접근하면 에러가 발생한다.

 

다른 스레드에서 유니티 메인 로직에 접근해야 한다면 MainThreadDispatcher 등을 사용하여

private async void TaskTest()
{
    await Task.Run(() =>
    {
        MainThreadDispatcher.Instance.Enqueue(() => transform.Translate(1f, 0f, 0f));
    });
}
 

이렇게 작성하면 된다.

728x90