• 티스토리 홈
  • 프로필사진
    개양반
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
개양반
  • 프로필사진
    개양반
    • Everybody Happyvirus (87)
      • Unity DOTS (19)
        • ECS Sample Projtect (8)
        • Unity.Physics (1)
        • TIP (9)
      • Unity Assets 추천 (6)
        • BG Database (5)
        • I2 Localization - 현지화 (1)
      • Unity 자습서 (15)
        • Addressable (4)
        • 유니티 + 파이어베이스 (0)
        • GamingServices (10)
      • 주식 이야기 (4)
        • 회사 소개 (2)
        • 회사 정보 (1)
        • 실적 발표 (0)
      • 일상 생활 (9)
        • 도서리뷰 (2)
        • 제품리뷰 (6)
      • 게임일기 (2)
        • 리그오브레전드 (2)
      • 게임소개 (4)
      • 게임리뷰 (7)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • UNITY DOTS - JobHandle.CombineDependencies
        2022년 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일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바