ruccho/UniTyped

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; // 設定

といった記述ができるようになる、というものを考えておりますが、特に構文に対する強い要望はございません。

ruccho commented

ありがとうございます。

  1. shaderPathでの .. 指定は現在の最新版(v0.2.0)で手元の環境(Windows / macOS, Unity 2021.3.24f1, .NET Standard 2.1)で動作することを確認しています。もし動作しないのであれば詳しい環境をお伝えいただけますでしょうか。
  2. シェーダーキーワードのオンオフについて、ぜひ実装したいと考えていますが、HLSLのパースに関する実装上の問題があるため、すぐには実装されないと思います。すみませんがご了承ください。

ご確認ありがとうございます!

  1. 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
  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