在Unity中管理材质

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

Shader和Material的关系

    Shader能够设置游戏物体的颜色或者能够通过材质来配置颜色。实际上,一个shader能够让许多物体看起来像是完全不同的物质。

    Shader和材质作为一个整体工作:Shader定义了表面看起来可以像哪些东西,材质让表面真正看起来是哪一个具体的东西。

修正紫红色的材质

    当我们从一个项目导入资源到当前项目时,有时会出现两个项目的渲染管线不匹配的情况,此时shader也是不匹配的。当某个材质使用的shader和当前渲染管线不匹配时,Unity Editor会使用明亮的紫红色来做警告提示,如下图所示。

在Unity中管理材质


    上图例子的工程时URP,为了修复紫红色柠檬的问题,我们先选中这个游戏物体,在其Inspector面板中,可以看到其材质的shader被设置为了Standard。在Unity中,如果shader的名字为Standard,则其基本就是Built-in渲染管线的Standard Shader,这种shader在URP工程中是无法正常工作的。我们需要将其改成一个URP shader来修复这个问题。

    在Shader下来菜单中,选择Universal Render Pipeline -> Lit,随后我们可以看到问题被修复了。

在Unity中管理材质


    上面所说的方法仅仅是最简单的一种修复材质错误的方法,但是还有其他很多错误材质的问题并没有这么简单就可以修复。

URP自动材质升级

    URP有一个built-in工具来自动转换问题材质。其步骤如下:

    1. Unity Editor的主菜单中,选择 Edit -> Render Pipeline -> Universal Render Pipeline -> Upgrade Project Materials to UniversalIRP Materials。

    2. 做完第一步后,由于这个选项会修改工程文件,会有一个弹窗提示确认你是否已经备份过项目了。确认后选择Proceed就可以了。

URP项目游戏物体的默认材质

    在URP项目中,添加一个Sphere到场景中,我们可以看到,它有一个默认材质Lit。

在Unity中管理材质


    点击Lit,在其Inspector面板中可以看到,它对应的shader是Universal Render Pipeline/Lit Shader。

在Unity中管理材质


    我们还可以看到,默认材质的Inspector中的所有东西都是灰的,表明其相关shader和属性在Editor中是无法修改的(但可以通过代码来修改)。

在项目窗口中查找材质

    当我们导入了不同资源到项目中后,如何能快速查找项目中的所有材质呢?

    首先在项目窗口中点击下图的图标,选择“Two Colume layout”

    

在Unity中管理材质


    然后在搜索框里输入t:Material(t表示type,例如想搜索所有脚本,就使用t:Script):

在Unity中管理材质


    如果想要搜索带关键字的材质,则再加上关键字即可,如下图会搜索名字里有red的材质:

在Unity中管理材质

应用材质到游戏物体上

    在场景中选择游戏物体,查看Inspector面板,在Mesh Renderer组件中的Materials下,可以进行材质的选择。

在Unity中管理材质


    当然,也可以拖动项目窗口中想要应用的材质到场景中的某个游戏物体上。

    一个材质可以应用到多个游戏物体上,当我们修改材质的属性时,所有使用这个材质的游戏物体都会发生变化。由于材质是整个项目范围内都能看到的,因此即使不同场景的不同游戏物体,只要它们使用同一个材质,材质属性改变后,这些游戏物体也都会变化。

创建材质

    一般在Unity项目中,我们会创建一个叫做Materials的目录或类似的目录来管理存放材质。下面的例子会以Materials目录名为例,来看材质的创建过程。

    首先,我们在场景中新增一个Cube

在Unity中管理材质


    然后在项目窗口中,找到Materials目录,点击后,在这个目录下点击右键,选择Create->Material:

在Unity中管理材质


    命名这个材质名为CubeMaterial,然后在Inspctor里调整一下相关属性,最后应用这个材质到前面创建的Cube游戏物体上。

在Unity中管理材质文章来源地址https://www.toymoban.com/news/detail-459266.html

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

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

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

相关文章

  • 【Unity Shader】从入门到领悟(1)基本概念:什么是网格?什么是材质和Shader?

    如上图,模型的三角形面就叫做网格(Mesh),网格的本质是一堆顶点数据的规则排序,在Unity和UE中由三角形表示,Maya等DCC软件(Digital Content Creation)中则通常由四边形表示(俩个三角形刚好组成一个四边形)。 在Unity中我们新建一个Cube,

    2024年02月06日
    浏览(45)
  • 【Unity Shader】从入门到感慨(1)基本概念:什么是网格?什么是材质和Shader?

    如上图,模型的三角形面就叫做网格(Mesh),网格的本质是一堆顶点数据的规则排序,在Unity和UE中由三角形表示,Maya等DCC软件(Digital Content Creation)中则通常由四边形表示(俩个三角形刚好组成一个四边形)。 在Unity中我们新建一个Cube,

    2024年02月11日
    浏览(35)
  • Unity中C#使用协程控制Shader材质变化

    在上一篇文章实现了C#脚本简单修改Shader材质的效果后,我们使用按钮点击结合协程来实现一下游戏中角色常见的效果:受击、中毒、消融效果 我们继续使用上一篇的 Shader 和 C# 脚本来继续测试 Unity中C#如何访问并修改Shader材质 Unity中的协程可以理解为 C# 中多线程的作用,在

    2024年02月04日
    浏览(51)
  • 【unity shader】水体渲染基础-基于texture distortion的流体流动材质

    当液体静止时,它在视觉上与固体没有太大区别。 但大多数时候,我们的性能不一定支持去实现特别复杂的水物理模拟, 需要的只是在常规的静态材料的表面上让其运动起来。我们可以对网格的 UV 坐标实现动态变化,从而让表面的纹理效果实现变形的动态变化。 1.1. uv实时

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

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

    2024年02月14日
    浏览(49)
  • 《Unity的URP项目中使用自定义shader导致材质消失的解决办法》

            在Unity中使用URP时,会有需求使用自定义的一些shader来实现特殊效果,这时如果我们直接使用新建材质与无光照着色器(Unlit shader),可能会发生一个对于新手而言意料之外的问题—— 物体!消失了!         打开你正在使用的的 通用渲染器(Universal Rendere

    2024年02月06日
    浏览(79)
  • Unity极坐标Shader特效,以及使用Instanced Property实现相同材质不同参数

    先看看效果 Unity极坐标Shader特效 有时候我们需要在场景中摆放一些热点,用户点击之后出现互动,当然实现这个功能的方法有很多,作为一名程序员,当然是要用最简单的实现。用shader程序化实现它。 啥是极坐标 极坐标,又称极座标系。它是一种表示平面直角坐标系中点的

    2024年02月09日
    浏览(40)
  • Material —— 材质节点 | Utility

    目录 AddNamedRerouteDeclarationNode... AddRerouteNode... AntialiasedTextureMask AtmosphereSunLightIlluminanceOnGround AtmosphereSunLightVector BentNormalCustomOutput BlackBody BoxMask-2D BoxMask-3D BumpOffset(B) ChannelMaskParameter ClearCoatNormalCustomOutput ConstantBiasScale DDX DDY DepthFade DepthOfFieldFunction Desaturation Distance DistanceFieldA

    2024年02月12日
    浏览(32)
  • Material —— 材质节点 | Coordinates

    目录 1Dto2DIndex 1Dto3DIndex 2Dto1DIndex 3Dto1DIndex ActorPositionWS BlurSampleOffsets BoundingBoxBased_0-1_UVW CameraPositionWS CameraVectorToLatLongUV LightmapUVs LocalPosition LongLatToUV MapARPassthroughCameraUV ObjectAlignedVirtualPlaneCoordinates ObjectOrientation ObjectPositionWS ObjectRadius Panner(P) PanTextureCoordinateChannelfrom-1ton+1 PanT

    2024年02月01日
    浏览(36)
  • 【Unity】材质设置1双面材质2HDRP材质转换3烘焙渲染

    一 双面材质问题 在Unity使用中,我们发现材质在物体上是单面的,换一个方向就看不到了,针对这个问题做个备注: 普通三维场景 首先将选中物体,找到对应的材质,然后将Shader组件的渲染模式改成【Particles】-【Standard Surface】,接着勾选上【Two Sided】属性就OK了 HDRP场景 在HDRP场景

    2024年02月12日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包