トップ 一覧 検索 ヘルプ 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.materials.Length > 0) {
     Material mat = mr.sharedMaterial;
     if (mat != null) {
       if (mat.HasProperty("_DiffuseVal")) {
         mat.SetFloat("_DiffuseVal", 0.5f);
       }
   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」を取得します。

----
{{lastmodified}}