調べ物した結果

現役SEが仕事と直接関係ないことを調べた結果とか感想とか

unity シェーダのお勉強①~シェーダの追加からプロパティの追加まで~

目的

・Vマケ4(だか3)だか。に向けてシェーダをなんとか理解する。
C#はいける。Unityはほぼわからん。シェーダもっとわからん。おじさんが頑張る。
・エディタ C#はVS2019,2017かそこら。とUnity使います。C#さわるだけだから、VSCode使うかもわかんね。
・Unityは当面 2017/4/28f1使います。前回のVマケから触ってないのがもろバレだね。

参考もと

ありがたやー
https://amagamina.jp/unity-shader/


とりあえず、シェーダを作ってみる。


f:id:couraeg:20191125215412p:plain
プロジェクトたてて~
f:id:couraeg:20191125215552p:plain
ぽちぽちーでできる。

シェーダ名をつけるよ。


作製されたファイルを開いてみる。結局VSCodeをつかった。
ファイル単体で扱う場合に、VisualStidioが勝てるとこが少ない気がする。
どうせあるだろう。ということでsupportも追加してみた
https://marketplace.visualstudio.com/items?itemName=slevesque.shader


参考URLをもとに、シェーダ名をつける。

Shader "Unlit/NewUnlitShader"
{
	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
	}

これを

Shader "Unlit/MyFirstShader"
{
	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
	}

こうする。「MyFirstShader」初めである以外何の意味もないからピッタリの名前だ。

マテリアルをつける。


ファイルを更新して、またUnityに戻る。createからマテリアルを作成。
f:id:couraeg:20191125220425p:plain
Inspactorでつくったシェーダを選択。
f:id:couraeg:20191125220602p:plain
unitに作ったシェーダがあるはず。

Propertyブロックを編集する


名前のごとく。 Unity上に表示されるプロパティをシェーダ側のコードで編集できるようだ。

	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
	}

現状、上のようになっていて、先ほどつくったマテリアルのInspectorを見てみると。
f:id:couraeg:20191125221007p:plain
たしかに。Textureはある。Rander Queueの方はデフォルトだろうか。プロパティでは宣言されてないけど表示されてる。
気にせずプロパティを増やしてUnity側に反映されるのを見てみよう。

	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
		_Float ("Float", float) = 0.1
	}

んー。用途がわからんからとりあえず追加したが。このプロパティ名は
非常に心地が悪い。floatだけど。うん。ってなる。Unityに反映されたか見てみる。
f:id:couraeg:20191125221316p:plain
ばっちり増えてますね。今回はここまで。