新年快乐,呼叫大佬
unity3d吧
全部回复
仅看楼主
level 1
ayang666 楼主
我想代码动态改变这个scale值,怎么获取对象身上这个变量啊
2025年01月01日 06点01分 1
level 6
material.getfloat或者试试materialPropertyBlock
2025年01月01日 08点01分 2
试了,不行
2025年01月01日 09点01分
level 1
获取这个材质,查看这个材质类里面有没有surface input这个变量,有就能点出来
2025年01月01日 11点01分 3
没有😭
2025年01月01日 12点01分
你要看这个shader和编辑器对应的里面变量名是啥,然后根据这个变量的类型去设置这个变量值。
2025年01月01日 15点01分
level 6
先用get component 获取组件,然后就能获取scan成员了。
2025年01月01日 11点01分 4
试了不行
2025年01月01日 12点01分
level 6
shader打开看看变量名称,这种带一个editor的看看editor代码就行
2025年01月01日 11点01分 5
level 1
using UnityEngine;
public class ChangeScale : MonoBehaviour
{
public float newScale = 2.0f; // 你想要设置的新scale值
void Start()
{
Renderer renderer = GetComponent<Renderer>();
if (renderer!= null)
{
Material mat = renderer.material;
mat.SetFloat("scale", newScale);
}
}
}
2025年01月02日 09点01分 7
不行啊大佬
2025年01月02日 11点01分
level 5
外面这个scale好像是显示文本,不是变量名称,你打开shader graph看一眼就知道是什么了。
2025年01月05日 08点01分 8
1