控制自己组件的执行顺序

[最近更新时间:2020/01/22]

本节描述了为您自己的组件控制其他 Cubism 组件的执行顺序的过程。
以下说明基于将追加到已执行[Import SDK-Place model]的项目的假设。

 

概述

Cubism SDK for Unity 的一些原始工作流组件以有限的顺序执行。

在 Cubism SDK for Unity 中,可以通过 CubismUpdateController 进行控制,控制上述组件的执行顺序。
CubismUpdateController 控制的组件将是 Cubism 模型中附加到 Prefab 根目录的组件。

通过使用 CubismUpdateController,还可以控制用户特定组件的执行顺序。

本节以设定以下组件的执行顺序控制的过程为例进行说明。

 

 

1. 将组件附加到 Prefab

将 CubismExampleController 附加到放置在 Hierarchy 中的 Prefab 根的 GameObject。
如果 Prefab 尚未以 OW 格式载入,则还要附加 CubismUpdateController。

 

 

2.在组件中实现ICubismUpdatable

在控制执行顺序的组件上实现 ICubismUpdatable 接口。

CubismUpdateController 获取在运行时实现 ICubismUpdatable 的组件并控制它们的执行顺序。

 

这里实现的ICubismUpdatable接口如下。

 

ExecutionOrder 是决定该组件执行顺序的值。
这个值越小,它在其他组件之前被调用得越早。
在 CubismUpdateExecutionOrder 中描述了为 SDK 中包含的组件设定的值。

HasUpdateController 是当实现 ICubismUpdatable 的组件未附加到 CubismUpdateController 时从 Unity 的Event函数调用的标志。

 

 

 

3.使组件与CubismUpdateController兼容

修改 CubismExampleController 如下。

 

将 LateUpdate() 执行的更新过程移动到 CubismUpdateController 调用的 OnLateUpdate() 中。

 

这样就完成了控制执行顺序的设定。
当您将此脚本附加到 Cubism 模型的 Prefab 并运行场景时,CubismUpdateController 将调用此脚本的更新过程。

 

© 2010 - 2022 Live2D Inc.