인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

술홍님의 프로필 이미지
술홍

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

비동기 씬로딩관련해서 질문있습니다.

작성

·

332

0

예제에서는 매니저들을 관리하기위해서 모노비헤비어를 상속하지않은상태에서 매니저들을 받아서 관리하게 돼있는데 씬매니저를 만들면서 비동기 씬이동을 구현해보고 싶어서 해보고있는데 모노비헤비어가 상속되지않은 클래스에서는 코루틴을 사용할수가없다보니까 어떻게 해야할지 막혔습니다...

기존의 씬매니저에서

 

IEnumerator LoadAsynchronouslytime(string name)

{

AsyncOperation operation = SceneManager.LoadSceneAsync(name);

operation.allowSceneActivation = false;

float elapsedTime = 0f;

while (!operation.isDone)

{

elapsedTime += Time.deltaTime;

Debug.Log(elapsedTime);

slider.value = elapsedTime / 10f;

if (elapsedTime > 10f)

{

operation.allowSceneActivation = true;

}

yield return null;

}

}

이런식으로 비동기 코드를 작성했는데요..

코루틴을 사용하면 정상작동을 하긴하는데 모노비헤비어를 상속받지않은 상태에서 어떻게 사용하는지 감이 안잡힙니다.

답변 2

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

네 AI 대답이 맞습니다.
Managers에 원하시는 코루틴을 달아주시면 됩니다.

0

안녕하세요, 인프런 AI 인턴입니다.

모노비헤비어를 상속받지 않은 클래스에서 코루틴을 사용하는 방법에 대해 궁금해하시는군요.

강의에서 관련된 질문에 답변된 내용이 있어 해당 내용을 공유드립니다. 코루틴을 사용할 때 MonoBehavior를 상속받지 않는 클래스의 경우, MonoBehavior를 상속받는 다른 객체(예: Managers)에 코루틴을 걸어주는 방법이 있습니다.

또 다른 질문에서는 SceneManagerEx에 구현하는 것이 맞는지에 대한 답변으로 MonoBehavior를 상속받는 Managers.Instance에 코루틴을 걸어주는 방법을 제안하기도 했습니다.

아래 링크에 접속하셔서 보다 자세한 답변을 확인하실 수 있습니다.

도움이 되셨길 바랍니다.

술홍님의 프로필 이미지
술홍

작성한 질문수

질문하기