传说使用Shader的ID来设置Shader属性能提高效率:)
其实我就是想多知道一些使用Shader的方法:D
使用测试代码如下:
using UnityEngine;
public class Test : MonoBehaviour
{
[SerializeField]
MeshRenderer render;
int baseColorID;
void Start()
{
baseColorID = Shader.PropertyToID("_BaseColor");
}
void Update()
{
Vector3 pos = render.transform.position;
float r = Mathf.Abs(pos.x - (int)pos.x);
float g = Mathf.Abs(pos.y - (int)pos.y);
float b = Mathf.Abs(pos.z - (int)pos.z);
render.material.SetColor(baseColorID, new Color(r, g, b));
}
}
效率提升与否不知道,反正可以这么用就是了:D
吐槽一下,Mathf里面居然没有取小数的方法,害得我用小数减去自身取整之后的结果。

本文探讨了一种使用Shader的ID来设置材质属性的方法,以提高效率。示例代码展示了如何根据游戏对象的位置动态改变_MeshRenderer_组件的基色。虽然是否真正提高效率未知,但这种方法在某些场景下可能有用。代码中通过计算位置的小数部分来生成颜色,用于演示目的。
&spm=1001.2101.3001.5002&articleId=125179072&d=1&t=3&u=9da68c772aa943938438449ae1b847fa)
5715

被折叠的 条评论
为什么被折叠?



