자체 구성 요소의 실행 순서를 제어합니다.

[마지막 갱신일: 2020/01/22]

이 섹션에서는 사용자 자신의 구성 요소에 대해 다른 Cubism 구성 요소 간의 실행 순서를 제어하는 절차를 설명합니다.
다음은 [SDK 가져 오기 ~ 모델 배치]를 수행 한 프로젝트에 추가한다고 가정합니다.

 

개요

Cubism SDK for Unity의 Original Workflow 구성 요소 중 일부는 실행되는 순서에 제한이 있습니다.

Cubism SDK for Unity에서는 CubismUpdateController를 사용하여 제어 할 수 있으며 위의 구성 요소는 실행 순서를 제어합니다.
CubismUpdateController가 제어하는 구성 요소는 Cubism 모델의 Prefab 루트에 연결된 구성 요소가 됩니다.

CubismUpdateController를 사용하면, 유저 독자적인 컴퍼넌트도 마찬가지로 실행 순서를 제어하는 것이 가능합니다.

이 예에서는 다음 구성 요소에 대해 실행 순서 제어를 설정하는 절차를 설명합니다.

 

 

1. Prefab에 구성 요소를 연결

Hierarchy에 배치된 Prefab의 루트 GameObject에 CubismExampleController를 연결합니다.
또한 Prefab을 OW 형식으로 가져오지 않은 경우 CubismUpdateController도 연결합니다.

 

 

2. 컴포넌트에 ICubismUpdatable 구현

실행 순서를 제어하는 구성 요소에 ICubismUpdatable 인터페이스를 구현합니다.

CubismUpdateController는 런타임에 ICubismUpdatable을 구현한 구성 요소를 가져오고 실행 순서를 제어합니다.

 

여기서 구현한 ICubismUpdatable 인터페이스는 다음과 같이 되어 있습니다.

 

ExecutionOrder는 이 구성 요소의 실행 순서를 결정하는 값입니다.
이 값이 작을수록 다른 구성 요소보다 먼저 호출됩니다.
SDK와 함께 제공되는 구성 요소에 설정된 값은 CubismUpdateExecutionOrder에 설명되어 있습니다.

HasUpdateController는 ICubismUpdatable을 구현한 구성 요소가 CubismUpdateController에 연결되지 않은 경우 Unity의 이벤트 함수에서 호출하도록 하는 플래그입니다.

 

 

 

3. 컴포넌트를 CubismUpdateController에 대응시킨다

CubismExampleController를 다음과 같이 수정합니다.

 

LateUpdate()에서 수행한 업데이트 프로세스를 CubismUpdateController가 호출하는 OnLateUpdate()로 이동합니다.

 

이것으로 실행 순서를 제어하는 설정은 종료입니다.
이 스크립트를 Cubism 모델의 Prefab에 연결하여 씬을 실행하면 이 스크립트의 업데이트 프로세스가 CubismUpdateController에 의해 호출됩니다.

 

© 2010 - 2022 Live2D Inc.