随笔-Unity中修改Spine材质

这篇具有很好参考价值的文章主要介绍了随笔-Unity中修改Spine材质。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        我们在Unity中使用Spine动画时,往往需要在材质上添加一些效果,比如描边、闪光等等。

随笔-Unity中修改Spine材质 随笔-Unity中修改Spine材质 随笔-Unity中修改Spine材质

         这些效果其实在Spine插件中就给我们提供好了对应的Shader,路径分别是:Spine/Outline/Skeleton、Spine/Skeleton Fill。虽然有插件上给我提供好了这些常用的Shader,单独的一个Spine动画我们只需要修改一下就好了,但是往往我们一个项目中肯定不会只使用单独的一个Spine动画,正常情况下会同时使用同一个Spine制作许多了预制。这种情况下,我们修改一个对象的Shader上的数值。其他的也会跟着修改。这就是我们想要的了,这时我们可以使用MaterialPropertyBlock(材质属性块),来替换Material属性操作。首先我们来看看官方API是怎么介绍的(以下是机翻,想知道具体的可以去官网自己查查看)

随笔-Unity中修改Spine材质

        下面我贴出一部分伪代码,可以供大家参考参考,具体怎么使用还是需要根据大家自己项目需求来编写逻辑。

    //获取Spine的Mesh
    MeshRenderer r;

    MaterialPropertyBlock mpb;

    private void PlayAnimation()
    {
        r = skeletonAnimation.GetComponent<MeshRenderer>();
        mpb = new MaterialPropertyBlock();

        SetMaterialSpine(1);

        //利用DOTeen让Spine的颜色由白色渐渐变成正常的颜色
        DOTween.To(() => 1f, SetMaterialSpine, 0f,1).SetEase(Ease.Linear)
            .SetAutoKill(false).SetTarget(this).SetDelay(1f);
    }

    private void SetMaterialSpine(float f) 
    {
        if (mpbSpine != null)
        {
            mpbSpine.SetFloat("_FillPhase", f);
            r.SetPropertyBlock(mpbSpine);
        }
    }

        这段伪代码的大致作用就是先把Spine动画变成纯白色。延迟1s之后在1s之内逐渐恢复到原本的颜色。一段很简单的使用。我们使用了MaterialPropertyBlock的方法来更换材质的Shader属性。这样只会修改我们需要修改的对象上的Shader属性而不会影响到其他对象的材质。达到了我们可以灵活控制的目的。下图就是我们运行起来之后的效果:

随笔-Unity中修改Spine材质随笔-Unity中修改Spine材质文章来源地址https://www.toymoban.com/news/detail-507249.html

到了这里,关于随笔-Unity中修改Spine材质的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity——Spine动画的使用

    Spine是一个收费的跨平台的2D骨骼动画制作工具。 官方地址:http://zh.esotericsoftware.com/ Spine导出的资源有3个文件 .json 存储骨骼信息 .png 使用的图片图集 .atlas.txt 图片在图集中的位置信息 当我们把这三个资源导入到已经引入了Spine运行库的Unity工程后会自动为我们生成 _Atlas 材质

    2024年02月02日
    浏览(60)
  • Unity 修改材质球的属性为透明

    新建cube时,Inspector面板中的Material是灰色的,无法修改。 任意选一个材质就可以进行修改了。 在asset store中下载ICE_sushishop,并贴图。

    2024年02月12日
    浏览(38)
  • Unity中C#如何访问并修改Shader材质

    我们写好Shader后,很多效果是需要结合脚本来控制显示的。我们在这篇文章中,使用C#脚本来访问修改材质中的属性,来体验一下脚本怎么控制Shader材质在游戏中互动时变化 我们 OnGUI 这个生命周期函数中,进行操作 void OnGUI() { } 使用GUI.Button(position,text);可以绘制一个按钮 pu

    2024年02月04日
    浏览(45)
  • Unity3D 获取子孙物体并修改材质球属性

    如图要获取划线物体并修改其材质球: private Transform[] FindChild; public Material ChangeMat;//变换后的材质球 private Material mat; void Start() {         FindChild = this.gameObject.GetComponentsInChildrenTransform(true);//true表示包括隐藏物体的查找         foreach (Transform child in FindChild)         {  

    2024年02月15日
    浏览(68)
  • Unity GPU Instancing合批_如何基于单个的实体修改材质参数

    最近在做DOTS的教程,由于DOTS(版本1.0.16)目前不支持角色的骨骼动画,我们是将角色的所有动画数据Baker到一个纹理里面,通过修改材质中的参数AnimBegin,AnimEnd来决定动画播放的起点和终点,材质参数AnimTime记录当前过去的动画时间。但是在做大规模战斗控制的时候,有10000+的小

    2024年01月21日
    浏览(47)
  • 最新Unity DOTS Instancing合批:如何针对单个渲染实体修改材质参数

    最近在做DOTS的教程,由于DOTS(版本1.0.16)目前不支持角色的骨骼动画,我们是将角色的所有动画数据Baker到一个纹理里面,通过修改材质中的参数AnimBegin,AnimEnd来决定动画播放的起点和终点,材质参数AnimTime记录当前过去的动画时间。但是在做大规模战斗控制的时候,有10000+的小

    2024年01月22日
    浏览(48)
  • 【Unity100个实用小技巧】如何修改UI上材质的Shader

    ☀️博客主页:CSDN博客主页 💨本文由 萌萌的小木屋 原创,首发于 CSDN 💢 🔥学习专栏推荐:面试汇总 ❗️游戏框架专栏推荐:游戏实用框架专栏 ⛅️点赞 👍 收藏 ⭐留言 📝,如有错误请指正 📆 未来很长,值得我们全力奔赴更美好的生活✨ ------------------❤️分割线❤

    2024年02月14日
    浏览(50)
  • unity中的基本材质使用

      在unity中我们可以使用unity本身自带的材质来改变物体的颜色,和我们使用法线和高度,光源遮罩来完善我们的物体的质感和其他各种的功能 在unity中我们如何创建一个材质,首先我们在资源管理界面右键鼠标,点击第一个创建,再找到Material点击如何我们的文件中就出现了一

    2023年04月08日
    浏览(35)
  • Unity随笔:在Unity中使用多线程需要注意什么

    Unity3D 支持多线程编程,但是在 Unity 中使用多线程需要注意一些限制和注意事项。以下是在 Unity 中使用多线程时需要注意的事项: 1. Unity 主线程限制: Unity 中的大部分操作必须在主线程进行,包括场景的修改、资源的加载、渲染相关的操作等。只有主线程能够直接修改 Un

    2024年04月10日
    浏览(42)
  • Unity---Spine动画

    目录 1.介绍 2.优点 3.spine导出的unity资源 4.导入 5.导入报错的解决方案 6.使用 7.代码示例 1.加载Spine骨骼动画: 2.控制Spine动画的播放: 3.暂停和恢复动画播放: 4.监听动画事件: 5.切换皮肤(换装) 6.获取骨骼的Transform信息: 7.控制骨骼动画的混合和交叉淡入: 8.控制动画的

    2024年02月10日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包