unity动态修改物体颜色(改变材质球Shader)

有时候我们可能会动态创建、或者加载一些物体需要改变一下物体的基本颜色,但是一个材质球我们可能用在很多物体上,所以就需要用到下边的这个方法;

private Material cubeMat;//使用代码动态创建

void Update()
{
if (Input.GetMouseButtonDown(0))
cubeMat= new Material(Shader.Find(“Custom/NewSurfaceShader”));//在project窗口中找到这个shader脚本
float r= 100/255;
float g=255/255;
float b=150/255;
cubeMat.color=new Color(r, g, b, 1);//设置颜色(注意:new Color 的rgb的数值范围是0-1 ,无论你给rgb 设置的什么都要除于255,这样才是你在unity里面看到的颜色。 color32则是 0-255的数值范围)

gameobject.GetComponent().material = cubeMat;//将设置的颜色赋给你的物体
}
如果有问题或者哪里不对 希望各位留言,谢!

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity中实现材质颜色渐变的方法是使用ShaderGraph。ShaderGraph是Unity的一个可视化着色器编辑器,可以通过图形化界面和节点连接来创建自定义的着色器效果。使用ShaderGraph需要一定程度的图形学知识,比如了解顶点、片段着色器的渲染流程以及如何结合Unity材质编辑器等。 下面是一个基于Unity3D实现渐变颜色的简单脚本的例子,通过ShaderGraph实现材质颜色渐变效果: ```csharp using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace YourNamespace { public class ColorGradientShader : MonoBehaviour { public Gradient gradient; private Material material; private void Start() { Renderer renderer = GetComponent<Renderer>(); material = renderer.material; } private void Update() { float time = Time.time; // 根据时间来控制渐变颜色的变化 Color color = gradient.Evaluate(time); // 根据渐变的时间来获取对应的颜色 material.color = color; // 将获取到的颜色赋值给材质颜色属性 } } } ``` 上述脚本将渐变颜色应用到材质上,可以通过设置Gradient来定义渐变的颜色。脚本中的Update函数会根据时间来控制渐变颜色的变化,并将获取到的颜色应用到材质上。使用这个脚本,你可以在Unity中创建一个空物体,并将其附加上这个脚本,然后将你想要应用渐变颜色材质赋值给该物体的Renderer组件。 需要注意的是,使用ShaderGraph需要安装UnityShaderGraph插件,并且了解如何创建和编辑ShaderGraph图形化界面。同时,还需要编写一些脚本来控制渐变颜色的变化,根据具体需求来进行定制。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Unity Shader】(7)渐变纹理 控制漫反射光照效果 (动漫风、插画风的理论)](https://blog.csdn.net/weixin_46840974/article/details/124080692)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Unity3D实现渐变颜色效果](https://download.csdn.net/download/weixin_38713801/13791958)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [【unity造轮子】Unity ShaderGraph使用教程与各种特效案例(2023/7/9更新)](https://blog.csdn.net/qq_36303853/article/details/131376168)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值