質問: unityのマテリアル(shader skybox/panoramic)の設定のExposureの値を1から0にスクリプトで変えたいのですが中々できません。。教えてくださると助かります ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/47c49fabab4573f1c7a2de72cc9faac5.png)
回答: ### 2020.08.21追記-2 前回、Cubeオブジェクトのマテリアルに対して変更を行いましたが、 Lighting Settings]で指定しているマテリアルを直接渡せば変わるかもしれません。 ※こちらでは値が変わってるっぽい動きになりましたが、質問者様の方の設定次第では動かないとかあるかもです。 ``` public class Sample : MonoBehaviour { [SerializeField]private Material mat; // <- [Lighting Settings]で指定しているマテリアルを設定する void Start() { mat.SetFloat("_Exposure", 3f); } } ``` こちらでは、「MaterialSample」というマテリアルを設定。 ![イメージ説明 以下、動作結果(ボタン押下によってExposureの値を変更して確認)。 !GIF画像 ### 2020.08.21追記-1 コメントに関してご確認です。 こちらの理解力も無くて申し訳ないのですが、もし違ったら質問文に詳細を追記頂けると助かります。 > > Lightingに入れたskyboxマテリアルの値 > > > とは、「Lighting Settings」で指定しているマテリアルということでしょうか ※以下ウインドウ内のマテリアルに、独自のマテリアルを設定しているということでしょうか? !Unity Lighting Settings 以下の様な方法ではどうでしょうか。 値を変更するタイミングは、適宜変更お願いいたします。 ``` using UnityEngine; public class Sample : MonoBehaviour { [SerializeField]private GameObject obj; // 対象のシェーダーが適用されたGameObjectを設定する // Start is called before the first frame update void Start() { // 値変更処理 Renderer r = obj.GetComponent(); r.material.SetFloat("_Exposure", 0f); } } ``` **シェーダーのプロパティ値参照について** シェーダーは各プロパティを持っていて、そちらを指定することで値を変更することが可能になります。 プロパティ値の参照方法などについては、以下などをご参照ください。 * Unity5のStandardシェーダのパラメタをスクリプトからいじろうとして丸一日潰れた話