You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中如何通过脚本访问Shader Graph的Alpha属性?

解决Shader Graph透明属性的脚本访问问题
  • 核心问题:你之前报错是因为Shader Graph里的属性名称并非Unity默认的_Color,必须用Shader Graph中定义的**Reference(引用名)**来访问属性。

步骤1:确认属性的正确引用名

打开你的Shader Graph,找到控制透明度的对应属性(通常是带Alpha通道的基础颜色属性,或是单独的Alpha滑块属性):

  1. 在Blackboard面板选中该属性
  2. 查看Inspector面板里的Reference字段,这个字符串就是脚本中要使用的属性名(比如_BaseColor、_MainAlpha等)

步骤2:脚本中访问属性的正确写法

根据属性类型选择对应方法:

情况1:通过带Alpha的颜色属性控制透明度

先获取当前颜色,修改Alpha通道后重新赋值:

// 获取Renderer组件
Renderer objRenderer = OBJ.GetComponent<Renderer>();
// 替换成你自己的属性引用名
Color targetColor = objRenderer.material.GetColor("_BaseColor");
// 设置透明度(0完全透明,1完全不透明)
targetColor.a = 0.6f;
// 重新赋值颜色
objRenderer.material.SetColor("_BaseColor", targetColor);

情况2:通过单独的Float类型Alpha属性控制透明度

直接用SetFloat方法赋值:

Renderer objRenderer = OBJ.GetComponent<Renderer>();
// 替换成你自己的属性引用名
objRenderer.material.SetFloat("_MainAlpha", 0.4f);

注意事项

  • 使用material会创建材质实例,修改后不会影响其他使用该材质的对象;如果要批量修改所有同材质对象,改用sharedMaterial。

内容的提问来源于stack exchange,提问作者Amarth Gûl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 05:34:57