Spine动画|如何在spine动画中插入一张图片(Spine动画图层先后顺序处理)
如何在Spine动画中插入一张图片(Spine动画图层先后顺序处理) 项目开发过程中,遇到一个需求,需要将美术给到的spine动画做层级处理。简单来说,如下图:需要将一张桌子图片的层级置于手的后面,身体的前面。
文章图片
目前根据spine提供的方法,只有3D物体的spine才能做到这种效果。也就是说SkeletonGraphic(UGUI)是没办法做到的。
实现方法:
1.新建一个SkeletonAnimation物体,给物体挂上对应的spine动画文件。
2.点击下图按钮-》选择Add Skeleton Render Separator
文章图片
3.选择之后,会看到在Inspector视图下新增加了一个Skeleton Render Separator脚本。点击箭头中的加号,添加你需要做层级处理的骨骼,接着点击Add the mission renders(7)按钮。
文章图片
4.上述操作之后会看到你的动画角色物体下会多出几个子物体,这些物体对应着不同的骨骼。可以通过调整layer来设置层级。
文章图片
上述是通过手动方式设置角色层级,也可以通过代码的方式进行处理。
using UnityEngine;
using Spine.Unity;
public class AddSkeletonRenderSeparator : MonoBehaviour
{
SkeletonAnimation _skeletonAnimation;
private void Start()
{
_skeletonAnimation = transform.GetComponent();
SkeletonRenderSeparator srs = new SkeletonRenderSeparator();
srs.SkeletonRenderer = _skeletonAnimation;
srs.SkeletonRenderer.FindAndApplySeparatorSlots("head", false, true);
srs.SkeletonRenderer.FindAndApplySeparatorSlots("torso", false, true);
srs.SkeletonRenderer.FindAndApplySeparatorSlots("L-arm", false, true);
srs.SkeletonRenderer.FindAndApplySeparatorSlots("R-arm", false, true);
srs.SkeletonRenderer.FindAndApplySeparatorSlots("L-leg", false, true);
srs.SkeletonRenderer.FindAndApplySeparatorSlots("R-leg", false, true);
srs = SkeletonRenderSeparator.AddToSkeletonRenderer(srs.SkeletonRenderer, 0, 0, 5, 5);
//设置每个骨骼的层级
srs.partsRenderers[0].MeshRenderer.sortingOrder = 3;
}
【Spine动画|如何在spine动画中插入一张图片(Spine动画图层先后顺序处理)】}
推荐阅读
- 任时光绽放成六月繁花
- 我从来不做坏事
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 樱花雨
- 如何寻找情感问答App的分析切入点
- 拍照一年啦,如果你想了解我,那就请先看看这篇文章
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus使用queryWrapper如何实现复杂查询
- 人如果没梦想,和咸鱼有什么区别(自媒体时代把握住就能咸鱼翻身)
- 如何在Mac中的文件选择框中打开系统隐藏文件夹