Unity 6 | change param of material from script

Engineering

こんにちは。VisualProgrammerの西条です。

以前、youtubeで「scriptから、materialにaccessするprogram」についての解説をしたのですが、今回は、こちらについて、2023.2.22f1 -> 6.3で差異がないかを調べました。

その結果、「ほとんど差異はなかった」のですが、少しだけ、メモを残しておきたい内容もありましたので、こちらに記載しておきます。

ちょこっとメモ

Unity 6で、新規ProjectをSRPで作成します。

ここで新規materialを作成すると、defaultのshaderは、”Universal Render Pipeline/Lit”となります(2023.2.22f1では”Standard shader”であった)。

ここで、Editをクリックすると、editorでshaderの中身を見ることができます。

shaderの中身を見ると、MainColorの名前が、「_BaseColor」であることがわかります(Standard shaderでは、”_Color”であった)。

よって、2023.2.22f1では

void SetMainColor(ref Color color){
	if( my_material_.HasProperty("_Color") ){
		my_material_.SetColor("_Color", color);
	}
}

としていた所を、version 6.3では、

void SetMainColor(ref Color color){
	if( my_material_.HasProperty("_BaseColor") ){
		my_material_.SetColor("_BaseColor", color);
	}
}

とする必要があります。

2023.2.22f1 versionにおける解説動画

2023.2.22f1 における解説動画はこちらです。こちらもcheckすると、より理解が深まります。

関連記事

関連記事のリンクを貼っておきます。
ぜひ、そちらも参考にしてください。

タイトルとURLをコピーしました