【Unity】ShaderプロパティへのアクセスはShader.PropertyToID を使用した方が早い
material.SetColor などシェーダーのプロパティ値のキーは事前にPropertyToID を使ってでキャッシュしておいて、それを使ってアクセスした方がGC も発生せずに軽くなります。
public class SampleItemView : MonoBehaviour
{
/// <summary>
/// Shader プロパティ
/// </summary>
static readonly int ShaderPropertyID_Color = Shader.PropertyToID("_Color");
[SerializeField, Header("レンダラー")]
private MeshRenderer m_meshRenderer;
public MeshRenderer meshRenderer
{
get { return m_meshRenderer; }
}
public void Setup()
{
if (meshRenderer != null)
{
meshRenderer.material.SetColor(ShaderPropertyID_Color, Color.black);
}
}
}