이번에 적을 글은 전편인 JobRepeatManager 에 이어서 JobSequenceManager 입니다.
(대체 얼마나 할일없으면 나 자신은 이런걸 만드는거니...코딩 덕후 같으니)
다음과 같은 이유나 상황일 때 사용하기 위해 만들었습니다.
> 순차적인 함수 호출이 필요하다
> 서로 다른 인스턴스에서의 함수 호출로 인해 순차적 호출 시점 제어가 너무 귀찮다.
> 각 함수들을 Coroutine 으로 순차적 실행을 하고 싶을 때가 있다.
그래서 만든 것이 JobSequenceManager 입니다.
JobSequenceManager는 다음과 같은 함수와 파라미터를 가지고 있습니다.
멤버 변수 |
설명 |
public Queue<Tuple<MethodInfo, object, object[]>> _sequenceJobs |
등록되는 Job을 담고 있는 컨테이너 입니다. |
메소드 | 설명 |
public void AddJob<T>(string methodName, params object[] parameter) | - 수행시킬 Job을 등록하는 함수입니다. - AddJob<T>에서 <T>에는 본인이 등록 시킬 클래스 타입을 넣어주세요. - methodName에는 Type T에 구현되어있는 함수 이름을 넣어주세요. - 해당 함수에 파라미터를 전달 하고 싶은게 있을 시엔 parameter에 전달하면 됩니다. |
public void OnExecuteSequenceJob() | - 등록 된 Job을 수행시킵니다. |
public void OnExecuteSequenceCoroutine() | - 등록 된 Job을 Corotuine 형태로 수행시킵니다. - 모든 Job을 순차적으로 수행시킵니다. - JobSequenceManager의 CoExecuteJobSequence( ) |
protected IEnumerator CoExecuteJobSequence() | - 등록 된 Job을 IEnumerator(Corotuine) 형태로 수행시키는 함수입니다.
|
사용 방법은 간단하게 아래 샘플로 적어두겠습니다.
'Unity Engine > Unity3D Engine' 카테고리의 다른 글
#04.C# Job System_02 (0) | 2018.12.23 |
---|---|
#04.C# Job System_01 (0) | 2018.12.22 |
#02.JobRepeatManager - 03 (0) | 2018.12.20 |
#02.JobRepeatManager - 02 (0) | 2018.12.20 |
#02.JobRepeatManager - 01 (0) | 2018.12.19 |