[펌] 유니티 MonoBehaviour 상속 안 받고 코루틴 사용하기
Unity3D/Script / 2022. 5. 18. 21:02
public class CoroutineHelper : MonoBehaviour
{
private static MonoBehaviour monoInstance;
[RuntimeInitializeOnLoadMethod]
private static void Initializer()
{
monoInstance = new GameObject($"[{nameof(CoroutineHelper)}]").AddComponent<CoroutineHelper>();
DontDestroyOnLoad(monoInstance.gameObject);
}
public new static Coroutine StartCoroutine(IEnumerator coroutine)
{
return monoInstance.StartCoroutine(coroutine);
}
public new static void StopCoroutine(Coroutine coroutine)
{
monoInstance.StopCoroutine(coroutine);
}
}
사용법 :
CoroutineHelper.StartCoroutine(코루틴_함수());
CoroutineHelper.StopCoroutine(코루틴);
그냥 유니티 생명주기를 가진 한 싱글톤 객체에 코루틴 실행을 몰아주는 방식
가끔 MonoBehaviour 상속 안 받고 코루틴 실행하고 싶을 때가 있는데 그럴때 사용할 수 있을듯..
예전에 unirx(MainThreadDispatcher)한 번 사용해본적 있었는데 거기서 아이디어 얻음
[출처] https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=66595
반응형
'Unity3D > Script' 카테고리의 다른 글
[Build] 빌드 시, Builtin 되는 AssetBundle 중 현재 Platform의 AssetBundle만 빌트인 되도록 하기 (0) | 2023.01.18 |
---|---|
[링크] 유니티 - Scripting Define Symbol 스크립트로 제어하기 (0) | 2022.07.20 |
[링크] Well512 알고리즘 예제, 난수 생성기, 랜덤 포레스트(Random Forest) (0) | 2021.10.25 |
[펌] WELL 512 랜덤 알고리즘 (0) | 2021.09.02 |
[펌] www 클래스, UnityWebRequest 클래스 사용하기(HTTP 서버에 데이터 가져오기, 보내기 등) (0) | 2020.12.22 |