unity动态修改spine动画局部位置的渲染层次

做项目的时候想把一个spine动画的某个部件的渲染层次改了,让这个动画中可以穿插其他的图片。但是一个spine动画的渲染层次是在一起的,只能单独修改spine下骨骼点下插槽中的图片的渲染层次。这是我的一个同事实现的这个效果,我在这个记录一下。

使用spine运行库中自带的spine动画做的实现过程。

1.在skeleton Animaton下添加Skeleton Utility。点击添加。

unity动态修改spine动画局部位置的渲染层次

2.点击后会在该物体上添加一个skeleton Utility的脚本。点击Spawn Hierarchy。选择Follow all bones。

unity动态修改spine动画局部位置的渲染层次

3.在Hierarchy面板中,该spine动画物体下会有一个root。这就是所有的骨骼点。我们来选择一个骨骼,然后了一个胳膊,把这个骨骼点下的图片的渲染层次改了。

unity动态修改spine动画局部位置的渲染层次

4.回到spine动画物体上,添加一个脚本。Skeleton Render Separator.cs。

unity动态修改spine动画局部位置的渲染层次

5.在separator slot names 下添加这个插槽的名字。

unity动态修改spine动画局部位置的渲染层次

6.选择好需要单独修改部件插槽的名字front_upper_arm。点击Add the missing renderers。会在spine物体下自动生成两个物体,物体名为0和1两个物体。

unity动态修改spine动画局部位置的渲染层次

7.这两个相当于把spine动画渲染部分分成了两部分单独渲染,此时你会发现在spine动画物体上的Mesh Renderer为关闭状态。

unity动态修改spine动画局部位置的渲染层次

8.你设置1物体中的order in layer层次就可以了改变胳膊图片的层次了。不过其他部位也会和这个胳膊在同一个渲染层上。隐藏0物体会发现,1物体上不仅有我们设置的需要改变的部位,还有其他部位。如图:

unity动态修改spine动画局部位置的渲染层次

这个我还没弄明白,有搞明白的欢迎在下面留言让我也学习一下。