トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

unity_script_material_property

マテリアルのプロパティの変更


個々のマテリアルが持つプロパティの存在チェックは「Material.HasProperty」を使用、
float値のプロパティ変更は「Material.SetFloat」を使用します。

GameObject gameObject = GameObject.Find("xxx") as GameObject;
if (gameObject != null) {
  MeshRenderer mr = targetGameObject.GetComponent<MeshRenderer>();
  if (mr != null && mr.sharedMaterial != null) {
    if (mr.sharedMaterial.HasProperty("_DiffuseVal")) {
      mr.sharedMaterial.SetFloat("_DiffuseVal", 0.5f);
    }
  }
}

この場合は、マテリアル(Shader)のプロパティとして「_DiffuseVal」が存在する場合、その値を0.5に置き換えます。

その他、SetColor/SetInt/SetMatrixなどが使用できます。

スキン変形する形状の場合は、gameObject.GetComponent<SkinnedMeshRenderer>()として「SkinnedMeshRenderer」を取得します。


最終更新時間:2016年11月08日 21時36分01秒