MaterialView に関する要望
yuyu0127 opened this issue · 3 comments
日々ありがたく利用させていただいております😊
MaterialView に関して、2点要望がございます。
1. shaderPath で別フォルダ内のシェーダーを指定したい
フォルダ管理の都合上、下記のようなディレクトリ構成になる場合が頻繁にあります。
[ディレクトリ構造]
Assets
├ Scripts
│ └ ShaderViews
│ └ XView.cs
└ Shaders
└ X.shader
このとき、XView.cs に
[UniTypedMaterialView("../../Shaders/X.shader")]
public partial struct XView { }
と記述することで X.shader に対するビューを生成できるようになると更に便利だと感じております。
2. キーワードを扱う機能が欲しい
shader_feature
および multi_compile
で定義されたキーワードに対して、EnableKeyword
/ DisableKeyword
/ IsKeywordEnabled
といった機能を view 経由で呼び出せると嬉しいです。
例えば、シェーダー側で USE_DITHER
というキーワードがあったとき、
Debug.Log(view.USE_DITHER.Enabled); // 取得
view.USE_DITHER.Enabled = true; // 設定
といった記述ができるようになる、というものを考えておりますが、特に構文に対する強い要望はございません。
ありがとうございます。
- shaderPathでの
..
指定は現在の最新版(v0.2.0)で手元の環境(Windows / macOS, Unity 2021.3.24f1, .NET Standard 2.1)で動作することを確認しています。もし動作しないのであれば詳しい環境をお伝えいただけますでしょうか。 - シェーダーキーワードのオンオフについて、ぜひ実装したいと考えていますが、HLSLのパースに関する実装上の問題があるため、すぐには実装されないと思います。すみませんがご了承ください。
ご確認ありがとうございます!
- shaderPathでの .. 指定は現在の最新版(v0.2.0)で手元の環境(Windows / macOS, Unity 2021.3.24f1, .NET Standard 2.1)で動作することを確認しています。もし動作しないのであれば詳しい環境をお伝えいただけますでしょうか。
実験を重ねたところ、条件は不明ですが「同一プロジェクトで同じような記述でも、クラスが自動生成される場合とされない場合がある」ことを確認しました。
一方でゼロから作成したプロジェクトであれば常に動作しております。
動作しなくなっているプロジェクトの方が諸事情で共有できないため、共有可能なプロジェクトで不具合を再現でき次第共有させていただきます!
環境は以下の通りです。
- Unity 2021.3.24f1
- macOS Ventura 13.4
- .NET Standard 2.1
- シェーダーキーワードのオンオフについて、ぜひ実装したいと考えていますが、HLSLのパースに関する実装上の問題があるため、すぐには実装されないと思います。すみませんがご了承ください。
承知しました。ありがとうございます!
実験を重ねたところ、条件は不明ですが「同一プロジェクトで同じような記述でも、クラスが自動生成される場合とされない場合がある」ことを確認しました。
一方でゼロから作成したプロジェクトであれば常に動作しております。
同様の問題に遭遇し、 暫定的な対応ができたため共有させて頂きます。
概要
macとWindowsの両方の環境で UniTyped を利用していたプロジェクトにおいて、Windowsでのみ MaterialView に対応するシェーダーグラフの自動生成が行われないことがありました。
macでは問題なく動作していました。
内容
- コード生成されないWindowsの環境において、
shadergraph
ファイルをグラフエディタで開き、何も編集せずに保存した後、C#のコードを編集するとshadergraph
の自動生成が期待通りに行われるようになりました。 - この問題は、shaderPath の相対パス指定 (..) の場合と、同階層内のパス指定の場合の両方で発生しました。
開発環境
- Unity 2023.2.9
- macOS Sonoma 14.4.1 / Windows 11
- .NET Standard 2.1