nirasan's tech blog

趣味や仕事の覚え書きです。Linux, Perl, PHP, Ruby, Javascript, Android, Cocos2d-x, Unity などに興味があります。

Unity で実行時にマテリアルを追加する

はじめに

  • Unity で実行時にマテリアルを追加したい場合の対応方法です。
  • 具体的にはプレハブは使い回したいが、特定の条件のときだけ画像を追加で貼付けたかったのでやってみました。

対応方法

マテリアルの用意

  • 貼付ける用のマテリアルをアセットに追加し、画像を割り当てる

プレハブの用意

  • 割り当てたスクリプトに public Material なフィールドを用意
  • インスペクターから先に用意したマテリアルを割り当てておく

プレハブのスクリプトで条件によりマテリアルを追加

	public Material NewMaterial; // 追加用のマテリアル
	void Start () {
		if (/* some cond */) {
			renderer.sharedMaterials = new Material[] {
				renderer.sharedMaterial, // 既存のマテリアル
				NewMaterial, // マテリアルの追加
			};
		}
	}