【Unity】ShaderプロパティへのアクセスはShader.PropertyToID を使用した方が早い

DEVELOP, Unity

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);
			}
		}
}

Posted by kazupon