绘制中断功能

最終更新: 2026年1月8日

此页面包含有关Beta版的描述。

概述

Cubism 5 SDK for Unity R5 beta 3中追加的此功能允许您在模型绘制物件(Drawable、Offscreen)的绘制处理前后调用任意处理。
可以以任意具有Renderer的物体和Cubism模型作为处理对象。

机制

当具有ICubismRenderingInterceptor接口的组件在CubismRenderingInterceptorsManager中注册时,该处理会在自定义渲染通道上绘制物件的绘制处理前后被调用。

Cubism SDK for Unity提供了CubismRenderingInterceptController组件,该组件继承了ICubismRenderingInterceptor,因此您可以立即使用绘制中断功能。
设置为在使用CubismRenderingInterceptController组件时,会在OnEnable()时自动注册到CubismRenderingInterceptorsManager

用法

直接使用提供的组件

可以通过将CubismRenderingInterceptController 组件附加到任意物体来使用它。

关于变量和函数

InvokeTiming InvokeTimingSetting
决定在绘制处理之前还是之后执行处理的枚举变量。

InterceptingMode Mode
用于在以下三种方法之间切换的枚举变量。
 ·SortingOrder
  使用下面描述的SortingOrder值来控制绘制顺序的方法。
 ・ZDepth
  利用与相机的距离来控制绘制顺序的方法。
 ·Drawable
  指定一个特定的Drawable,并在指定Drawable的绘制处理前后执行处理,而不管绘制顺序如何的方法。

int GroupSortingOrder
决定要在哪个Grouped Sorting Index时进行绘制的变量。
如果没有在指定Grouped Sorting Index绘制的模型,则除非设置了 InterceptingMode.Drawable,否则将跳过该处理。

int SortingOrder
设置绘制顺序的变量。
除了InterceptingMode.SortingOrder之外,其他均被忽略。

CubismDrawable _targetArtMesh
InterceptingMode.Drawable时参考的Drawable

CubismRenderController _renderController
当Cubism模型的物体被附加时参考的CubismRenderController组件
OnEnabled()中自动获取参考。

Renderer_renderer
当附加到除Cubism模型之外的物体时参考的Renderer 组件

Material _material
_renderer材质

使用继承的组件

有两种方法可以实现这一点:继承CubismRenderingInterceptController 组件或继承ICubismRenderingInterceptor 接口。

继承CubismRenderingInterceptController组件

CubismRenderingInterceptController 组件是一个继承了ICubismRenderingInterceptor ICubismUpdatableMonoBehaviour 的组件。

某些函数和属性被设置为virtual。

int ExecutionOrder
附加到Cubism模型时,控制OnLateUpdate()执行顺序的值

bool NeedsUpdateOnEditing
当附加到Cubism模型时,是否在即使不播放(Edit模式)时也执行OnLateUpdate()更新处理的标志

void OnLateUpdate()
用于对每一帧执行更新处理的函数

void OnPreRendering()
InvokeTiming.PreRendering 时执行的函数

void OnPostRendering()
InvokeTiming.PostRendering时执行的函数

继承ICubismRenderingInterceptor

如果继承了ICubismRenderingInterceptor 接口,则需要实装的函数是OnPreRenderingForPass()OnPostRenderingForPass()
必须单独实装对CubismRenderingInterceptorsManager的注册。

void OnPreRenderingForPass()
在自定义渲染通道中,绘制处理前调用的函数

void OnPostRenderingForPass()
在自定义渲染通道中,绘制处理后调用的函数

请问这篇文章对您有帮助吗?
关于本报道,敬请提出您的意见及要求。