Closed Narazaka closed 8 months ago
Issue 本文とは異なるユースケースですが、複数のPassから構成されるNDMFプラグインを開発する際、途中のPassまで実行された時点でのヒエラルキーの状態をUnityのインスペクタから確認したいことがあります。
ビルドを中断する専用の例外を定義して、途中のPassでビルドプロセスを中断できるようにすることで、NDMFプラグインの開発がしやすくなると思います。
NDMFのパスから例外を投げて止まらなかったらバグですね。 それとは別に、シングルステップみたいな機能があったほうが確かに便利ですね。
ここで catch して Plugin<T>.OnUnhandledException()
経由で Debug.LogException()
してるけど、 rethrow してないので止まらずに次のパスが実行されるっぽいです。
Plugin<T>.OnUnhandledException()
が呼ばれるような状況で例外をキャッチして後続のPassを実行する意味は薄そうなので、単に BuildContext.RunPass()
で rethrow すれば良さそうに思いました。
1.3.0-alpha.0で治っています。
現状ビルドを中断する手段が無いように思います。(IPreprocessBuildWithReport、IVRCSDKPreprocessAvatarCallback、ndmf Runでのreturn falseやBuildFailedExceptionのthrowをしてみたが効果がありませんでした)
個人的な需要としては1シーンに大量のアバターがactiveになっている場合にビルドが長時間かかることを回避するためにビルドを中断したいです。