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