1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Unity6.3】UIToolkitでカスタムシェーダーを使う

Last updated at Posted at 2025-12-13

はじめに

Unity6.3からUIToolkitでカスタムシェーダーが使用可能になったので試してみる

参考

ドキュメント

ディスカッション

UIToolkit向けのShaderGraphを作る

UIToolkit用のShaderGraphを作成する
いつもの場所に「UI Shader Graph」が追加されている
スクリーンショット 2025-12-13 23.41.08.png

作成すると以下のようになっている
スクリーンショット 2025-12-13 23.45.09.png

Graph InspectorのMaterialが「UI」、Blending Modeが「Alpha」になっていることが確認できる

作成したてだと、BaseColorしか表示されないので、とりあえずデフォルトの表示を設定する
「Render Type Branch」を使うことで表示できる
スクリーンショット 2025-12-13 23.52.37.png

Render Type Branchは新しく追加されたノードで、UI表示の各種パラメータを設定できる
(ほとんどの場合これを使うんだから最初から置いておいてほしい:cry:)
基本的にここへの入力をごちゃごちゃすることになりそう

試しにTextureをいじってみる
以下のように、UVや色をシェーダーグラフ上から指定することができる
スクリーンショット 2025-12-14 0.12.37.png

上記の例のように、Render Type Branchのパラメータへ入力する際には専用のコンポーネントで値を変換できる
スクリーンショット 2025-12-14 0.28.58.png

作ったShaderGraphを設定する

作ったShaderGraphに対応するマテリアルを作成しておく
スクリーンショット 2025-12-14 0.36.24.png

UIBuilder上で、VisualElementを配置して、VisualElementのInspectorでImageに適当なSpriteを設定する
その後、Inspectorに新しく追加されたMaterialへ作成したマテリアルを設定する

エディタ上では、Timeによるアニメーションは正確に動かない
上記で挙げた例のように、Timeノードを使っているとガクガク表示されると思う
これは、エディタ上ではUIが毎フレーム更新されるわけではなく、特定のライフサイクルやユーザーの入力によってのみ描画が更新されるためである

なので、エディタ上で使うツールなどにはTimeノードは使わないようにしよう

頂点の操作はできない

ちなみに頂点の操作はまだ未対応
スクリーンショット 2025-12-14 0.43.54.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?