Version: 2021.3
言語: 日本語

C# スクリプトでマテリアルを扱う

マテリアルの Inspector ウィンドウに表示されるパラメーターはすべて、スクリプトからアクセスすることが可能で、ランタイムにマテリアルを変化させたりアニメーション化したりすることができます。

This allows you to modify numeric values on the material, change colours, and swap textures dynamically during gameplay. Some of the most commonly used functions to do this are:

機能名 用途
SetColor マテリアルの色を変えます (例えば、アルベド色)
SetFloat 浮動小数点の値を設定します (例えば、法線マップ乗数)
SetInt マテリアルに整数値を設定します
SetTexture マテリアルに新しいテクスチャを指定します

スクリプトからマテリアルを操作するときに使える全機能が Material class scripting reference で参照できます。

One important note is that these functions only set properties that are available for the current Shader object on the material. This means that if you have a shader that doesn’t use any textures, or if you have no shader bound at all, calling SetTexture will have no effect. This is true even if you later set a shader that needs the texture. For this reason it is recommended to set the shader you want before setting any properties, however once you’ve done that you can switch from one shader to another that use the same textures or properties and values will be preserved.

These functions work as you would expect for all simple shaders such as the legacy shaders, and the built-in shaders other than the Standard Shader (for example, the particle, sprite, UI and unlit shaders). For a material using the Standard Shader however, there are some further requirements which you must be aware of before being able to fully modify the material.