unity シェーダのお勉強①~シェーダの追加からプロパティの追加まで~
目的
・Vマケ4(だか3)だか。に向けてシェーダをなんとか理解する。
・C#はいける。Unityはほぼわからん。シェーダもっとわからん。おじさんが頑張る。
・エディタ C#はVS2019,2017かそこら。とUnity使います。C#さわるだけだから、VSCode使うかもわかんね。
・Unityは当面 2017/4/28f1使います。前回のVマケから触ってないのがもろバレだね。
とりあえず、シェーダを作ってみる。
プロジェクトたてて~
ぽちぽちーでできる。
シェーダ名をつけるよ。
作製されたファイルを開いてみる。結局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からマテリアルを作成。
Inspactorでつくったシェーダを選択。
unitに作ったシェーダがあるはず。
Propertyブロックを編集する
名前のごとく。 Unity上に表示されるプロパティをシェーダ側のコードで編集できるようだ。
Properties { _MainTex ("Texture", 2D) = "white" {} }
現状、上のようになっていて、先ほどつくったマテリアルのInspectorを見てみると。
たしかに。Textureはある。Rander Queueの方はデフォルトだろうか。プロパティでは宣言されてないけど表示されてる。
気にせずプロパティを増やしてUnity側に反映されるのを見てみよう。
Properties { _MainTex ("Texture", 2D) = "white" {} _Float ("Float", float) = 0.1 }
んー。用途がわからんからとりあえず追加したが。このプロパティ名は
非常に心地が悪い。floatだけど。うん。ってなる。Unityに反映されたか見てみる。
ばっちり増えてますね。今回はここまで。