- UNITY DOTS - JobHandle.CombineDependencies2022년 11월 29일
- 개양반
- 작성자
- 2022.11.29.:03
1. 코드 설명
두 개의 종속성을 하나로 합칠 때 사용하는 코드이다.
// 반환 타입은 JobHandle JobHandle.CombineDependencies(JobHandle, JobHandle);
2. 필요 이유
Job은 필요에 따라 비동기로 진행되어야 하고 어느 시점에서 앞의 Job들이 완료되면 실행되게끔 처리해야 할 때가 있다. 이때, JobHandle.CombineDependencies 로 앞의 Job들의 종속성을 합쳐서 동기 시점을 맞출 수 있다.
3. 예제 코드
아래의 코드는 Job을 Schedule할 때 앞의 Job의 종속성을 매개변수로 전달하여 동기 방식으로 코드가 실행된다.
A가 끝나면 B가 실행되고 // B가 끝나면 C가 실행된다.
var jobHandleA = new JobA(){ }.Schedule(state.Dependency); var jobHandleB = new JobB(){ //job1의 종속성을 넣어줬음. //Job1이 완료되면 Job2가 실행됨 }.Schedule(jobHandle1 ); var state.Dependency = new JobC(){ // Job2의 종속성을 넣어줬음. // Job2가 완료되면 Job3가 실행됨 }.Schedule(jobHandle2 );
아래의 코드는 Job을 예약할 때 시스템의 종속성을 매개변수로 넣어 실행하여 A와 B가 비 동기 방식으로 코드가 실행된다. 그리고 CombineDependencies으로 두개의 종속성을 합친 combinedDepency을 C의 스케쥴의 매개변수로 전달하여 앞의 A와 B가 완료되어야 C가 실행된다.
var jobHandle1 = new JobA(){ // State의 종속성을 Schedule의 매개변수로 넣었다. }.Schedule(state.Dependency); var jobHandle2 = new JobB(){ // State의 종속성을 Schedule의 매개변수로 넣었다. }.Schedule(state.Dependency); // 두개의 종속성을 합친다. var combinedDepency = JobHandle.CombineDependencies(jobHandle1, jobHandle2); var state.Dependency = new JobC(){ // A와 B의 종속성을 합친 combinedDepency을 Schedule의 매개변수로 넣었다. // A와 B가 끝나야 C가 실행된다. }.Schedule(combinedDepency );
'Unity DOTS > TIP' 카테고리의 다른 글
Unity DOTS - 클릭한 장소로 이동하기 (4) 2025.02.09 UNITY DOTS TIP - ComponentData를 세분화 해라 (0) 2022.12.01 UNITY DOTS - Unity.Mathematics.Random 랜덤 사용하기 (0) 2022.11.28 UNITY DOTS - 거리 계산하기 (0) 2022.11.25 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)