CubismUpdateController

[마지막 갱신일: 2020/10/21]

개요

CubismUpdateController를 Prefab에 연결하여 Cubism SDK for Unity의 각 구성 요소의 실행 순서를 제어할 수 있습니다.

OW 방식에서는 각 컴퍼넌트의 실행 순서가 중요하므로 CubismUpdateController를 사용해 사양에 따르는 것이 필수가 됩니다.
실행 순서를 제어할 필요가 없으며 CubismUpdateController를 사용하지 않으면 구성 요소의 실행 순서가 Unity 측에서 결정되므로 실행 순서에 따라 Expression과 같은 기능이 제대로 처리되지 않을 수 있습니다.

사용자가 직접 만든 구성 요소의 실행 순서를 제어하려면 해당 구성 요소에 ICubismUpdateable을 구현합니다.

 

ICubismUpdateable 구현

실행 순서의 제어 대상이 되는 컴퍼넌트로 ICubismUpdateable 인터페이스를 상속합니다.

CubismUpdateController가 연결되어 있지 않으면 OnLateUpdate 처리가 수행되지 않으므로 다음 스니펫에서는 해당 구성 요소만으로도 작동합니다.

  • HasUpdateController
    • Prefab에 CubismUpdateController가 연결되어 있는지 여부를 설정합니다.
  • NeedsUpdateOnEditing
    • Unity에서 장면이 실행되지 않는 동안에도 업데이트를 수행해야 하는지 여부를 반환합니다.
      CubismUpdateController는 에디터 모드에서도 실행되므로, 그 컴퍼넌트가 비실행중에도 갱신할 필요가 없는 경우는 false를 돌려줍니다.
  • ExecutionOrder
    • 그 컴퍼넌트의 실행 순서를 돌려줍니다.
      이 값이 작은 컴퍼넌트일수록 먼저 불려 갑니다.
      Cubism SDK for Unity의 각 구성 요소의 실행 순서는 CubismUpdateExecutoinOrder에 정의되어 있습니다.
    •  유저가 실행 순서를 제어하는 컴퍼넌트를 추가했을 경우, CubismUpdateExecutoinOrder 의 정의를 참고로 해, 여기서 돌려주는 값으로 어느 타이밍에 불려 갈지 주의해 주세요.
      • 예(CubismLookController와 CubismPhysicsController 사이의 타이밍에서 자신의 구성 요소를 호출하려는 경우):
        • CubismLookController는 700을, CubismPhysicsController는 800으로 설정되므로 자체 구성 요소는 750을 반환하도록 설정합니다.
  • OnLateUpdate()
    • CubismUpdateController가 실행 순서를 제어하고 호출하는 함수입니다.
      그 컴퍼넌트가 실시하는 갱신 처리를 기술합니다.

 

실행 중에 구성 요소를 추가 및 삭제할 때의 주의

CubismUpdateController가 실행 순서를 제어하는 컴퍼넌트는, OnEnable()의 타이밍으로 실시합니다.
모든 컴퍼넌트가 미리 Prefab에 첨부되고 있는 경우는 문제 없습니다만, 씬 실행 중, 동적으로 컴퍼넌트를 추가 또는 삭제했을 경우, 명시적으로 CubismUpdateController.Refresh() 를 호출해 읽어들여야 합니다.

© 2010 - 2022 Live2D Inc.