Version: 2022.3
言語: 日本語
物理ベースのレンダリングマテリアルバリデーター
マテリアルバリアント

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

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

これにより、ゲームプレイ中にマテリアルの数値を変更したり、色を変更したり、テクスチャを動的に交換したりすることができます。これを行うために最も一般的に使用されるメソッドには、以下のようなものがあります。

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

スクリプトを通じてマテリアルを操作するために使う全メソッドは、Material クラス スクリプトリファレンスで参照できます。

1 つ注意が必要なのは、これらのメソッドはマテリアルの 現在のシェーダーオブジェクトに使用可能なプロパティのみを設定する という事です。これは、テクスチャを使わないシェーダーがある場合や、シェーダーがまったくバインドされていない場合、SetTextureを呼び出しても何の効果がない、という事です。これは、後でテクスチャを必要とするシェーダーを設定する場合にも当てはまります。このため、何かプロパティを設定する前に必要なシェーダーをセットすることを推奨します。ただし、シェーダーを設定した後、あるシェーダーから同じテクスチャまたはプロパティを使用する別のシェーダーに切り替えることができ、値は保持されます。

これらのメソッドは、古いシェーダーのようなすべての簡易なシェーダーや、 スタンダードシェーダー以外のビルトインシェーダー (例えば、パーティクル、スプライト、UI、unlit シェーダー) に対して、期待通りに機能します。ただし、スタンダードシェーダーを使用するマテリアルの場合は、マテリアルを完全に変更するには、その前に必要な追加の要件がいくつかあります。

物理ベースのレンダリングマテリアルバリデーター
マテリアルバリアント
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961