动作美术给我们出的Spine 是一个动画格式,当我们需要使用同一个骨骼,但是不同的蒙皮时,美术来做的话就是一件很无聊的重复的事情,浪费时间。所以就需要我们程序自己来制作了。首先在网上查了下修改的原理,就是替换这个spine动画预制体的matrial,因为slot是不变的,所以无需操作。然后尝试了网上找的方案,不太适合,出现了各种问题,所以自己看了下Spine的代码,发现为我们提供了自定义的修改脚本。总结一下两个方案实现:
方法一:首先添加SkeletonRendererCustomMaterials 脚本,在CustomMaterialOverrides 里 ,给需要替换的材质。这里的材质,我们需要自己生成,直接拷贝一份原mat文件,替换其mainTexture。SkeletonRengerer 拉过来(SkeletoinAnimation继承自SkeletonRengerer ),就发现spine动画的皮换掉啦。
方法二:此方法在网上很容易搜到,加载一张图片,把他的图片信息与Spine的slot绑定一起,然后创建一个新的材质,给Spine物体进行替换材质。
第一个方法方便自己创建不同的预制体,给策划同学自己去配置使用哪个,很方便。第二个方法我试了,但是会更改所有在场景中的这个物体,也会出现材质丢失的问题,管理起来很麻烦。如果有更好的解决方案可以提供的话 感谢大家了!方法二代码片段如下,来自网络:
public static Material CreateRegionAttachmentByTexture(Slot slot, Texture2D texture)
{
if (slot