マテリアルを変更する
ドキュメント:
Renderer.material | Unity スクリプトリファレンス [公式]
Renderer.materials | Unity スクリプトリファレンス [公式]
参考:
マテリアルのプロパティをスクリプトから変更 | kan のメモ帳
Material が2つ以上ついているオブジェクトの場合は、 どうやってそれぞれの Material に当てはめるのでしょうか? – Yahoo! 知恵袋
プレハブインスタンスのマテリアルを変更する
参考:
インスタンスのマテリアルを変更する | naru design devlog
スクリプトから Material をオブジェクトごとに変更 | はらけんログ
プレハブで生成した複数のオブジェクトの色を分ける方法 – teratail
スクリプトからシェーダーにパラメータを渡す
ドキュメント:
マテリアルパラメーターへのスクリプトを使ったアクセスと変更 | Unity 2049.4 マニュアル [公式]
Material.SetFloat | Unity スクリプトリファレンス [公式]
Material.SetColor | Unity スクリプトリファレンス [公式]
Material.SetColorArray | Unity スクリプトリファレンス [公式]
参考:
ゲームオブジェクトの色をスクリプトから変更する方法 – Qiita
マテリアルのプロパティをスクリプトから変更 | kan のメモ帳
オブジェクトの色/実装の基礎から応用までを徹底解説! | XR-Hub
スクリプトからマテリアルの色を変更する | Continue(s)
URP のマテリアルの色をスクリプトから変更する | はなちるのマイノート
レンダラーのマテリアルを取得する
レンダラーから取得したマテリアルは、使用後に破棄する必要がある。
public class ExampleClass : MonoBehaviour
{
private Material _material;
public void Start()
{
_material = GetComponent<Renderer>().material;
}
public void OnDestroy()
{
if (_material != null)
{
Destroy(_material);
}
}
}
Code language: C# (cs)
ドキュメント:
Renderer.material | Unity スクリプトリファレンス [公式]
参考:
Renderer.material で取得したマテリアルは自分で破棄しないとリークする話 | LIGHT11
マテリアルを複製する
ドキュメント:
Material.Material | Unity スクリプトリファレンス [公式]
参考:
スクリプトで複製したオブジェクトのマテリアルを別々に変更する – Qiita
シェーダーからマテリアルを作成する
Material mat = new Material(Shader.Find("Mobile/Particles/Additive"));
Code language: C# (cs)
ドキュメント:
Material.Material | Unity スクリプトリファレンス [公式]
Shader.Find | Unity スクリプトリファレンス [公式]
参考:
How to create new materials at runtime? – Unity Answers
Material Property Block
参考:
続・スクリプトから Material をオブジェクトごとに変更 Material Property Block 編 | はらけんログ
マテリアルや SetPass を増やさずテクスチャの UV を変える | テラシュールブログ
Shader.Find
ドキュメント:
Shader.Find | Unity スクリプトリファレンス [公式]
参考:
スクリプトから Shader を変更する | KAZUPON 研究室
GameObject の Shader を一括で変換する関数 | STYLY 開発者ブログ
Shader.Find のパラメータはファイル名ではない | 誰かのメモ
ビルドすると Shader.Find に失敗する – Qiita
Shader.Find でエラーが発生してしまう場合 | My note
シェーダーの一覧を取得する
ドキュメント:
ShaderUtil.GetAllShaderInfo | Unity スクリプトリファレンス [公式]
参考:
ShaderUtil.GetAllShaderInfo – Unity 2018.1.0b2 新機能 | コガネブログ
プロジェクトで使えるシェーダー一覧を取得する | sakaf memo
Sharder Replacer
コード:
Assets 内の全 Material の Shader を一括で置換する Editor 拡張 (SakaITa) – GitHub Gist