かりんちゃんの随心遊戯日誌

ゲームの日記、たまに政治の話、香港の話

年末年始のできごと2

引き続きUnityを研究中。というよりほぼシェーダーがメインです。

 

残念なことに、ちょっと行き詰まった。試行錯誤しながら、シェーダーだけでボタンを組めないかとやってみましたがダメのようでした。どうやらGUIだと、オブジェクトごとにシェーダーのPropertyを設定できないからです。

3DだとMaterialPropertyBlockという方法が存在するが、2D系のイメージではそれが使えない。マウスオーバーなどがたぶんマウス位置を渡せばなんとかなるかもしれないが、クリックイベントは渡せないのです。

いや、渡せるが、同じマテリアルを使ってるイメージは全部ひっかかるからです。つまりクリックすると、全てもイメージもクリック効果になるからです。

だから、無理でした。

PrefabはProperty個別ですし、シェーダーのPropertyも個別だろうと勘違いした僕が甘かった。

 

解決策としてクリック用の別のマテリアルを作ればよいが(スクリプトでマテリアルを差し替える)、他のPropertyも個別に設定できない以上、使い勝手が悪いので諦めました。もしMaterialPropertyBlockが使えたら、各マウスイベントの色、ボーダーの有無、厚さ、カラー、全部シェーダーでできるんだよね…

結局2Dは大人しくピクセルの加工だけが使い道かもしれない。まあ、Unityのシェーダーはまだ完全にマスターしてないけど…

 

とはいえ、仕事のアプリではそこまでシェーダーに頼るものではないので、特に問題はない。少なくともアウトライン付き丸ボタン(の背景)は使えます、それだけでもう十分です。

そもそももうひとりは完全にUnity初心者なので、自分が上級者向けのシェーダーばかり遊ぶと、たぶんその方もやってられんかもしれない。

 

この年末年始、本当にUnityの研究だけで終わりそうですね…