bdunderscore / ndmf

MIT License
65 stars 21 forks source link

新しく追加した Reactive Component のプレビューが更新されない #345

Closed nekobako closed 3 weeks ago

nekobako commented 3 weeks ago
  1. Unity を起動する
  2. シーンにアバターを配置する
  3. アバターに空の Game Object を追加する
  4. 空の Game Object に Object Toggle をアタッチして適当な対象を設定する
  5. Game Object のアクティブ/非アクティブを切り替えてもプレビューが更新されない
  6. シーンを保存して開き直す
  7. Game Object を選択した時点で下記のエラーが発生する または、エラーは発生しないが Game Object のアクティブ/非アクティブを切り替えてもプレビューが更新されない
MissingReferenceException: The object of type 'SkinnedMeshRenderer' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
nadena.dev.ndmf.preview.ProxyObjectController.SetupRendererMonitoring (UnityEngine.Renderer r) (at ./Packages/nadena.dev.ndmf/Editor/PreviewSystem/Rendering/ProxyObjectController.cs:83)
nadena.dev.ndmf.preview.ProxyObjectController..ctor (nadena.dev.ndmf.preview.ProxyObjectCache cache, UnityEngine.Renderer originalRenderer, nadena.dev.ndmf.preview.ProxyObjectController _priorController) (at ./Packages/nadena.dev.ndmf/Editor/PreviewSystem/Rendering/ProxyObjectController.cs:48)
nadena.dev.ndmf.preview.ProxyPipeline+<>c__DisplayClass22_0.<Build>b__3 (UnityEngine.Renderer r) (at ./Packages/nadena.dev.ndmf/Editor/PreviewSystem/Rendering/ProxyPipeline.cs:163)
System.Linq.Enumerable+SelectIListIterator`2[TSource,TResult].MoveNext () (at <70471b9615aa4ecfa3ed1abb95b73832>:0)
System.Threading.Tasks.Task.WhenAll[TResult] (System.Collections.Generic.IEnumerable`1[T] tasks) (at <27124aa0e30a41659b903b822b959bc7>:0)
nadena.dev.ndmf.preview.ProxyPipeline.Build (nadena.dev.ndmf.preview.ProxyObjectCache proxyCache, System.Collections.Generic.IEnumerable`1[T] filters, nadena.dev.ndmf.preview.ProxyPipeline priorPipeline) (at ./Packages/nadena.dev.ndmf/Editor/PreviewSystem/Rendering/ProxyPipeline.cs:190)
Rethrow as AggregateException: One or more errors occurred. (The object of type 'SkinnedMeshRenderer' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.)
UnityEngine.Debug:LogException(Exception)
nadena.dev.ndmf.preview.ProxyPipeline:ShowError() (at ./Packages/nadena.dev.ndmf/Editor/PreviewSystem/Rendering/ProxyPipeline.cs:301)
nadena.dev.ndmf.preview.ProxySession:OnPreCull(Boolean) (at ./Packages/nadena.dev.ndmf/Editor/PreviewSystem/Rendering/ProxySession.cs:82)
nadena.dev.ndmf.preview.PreviewSession:OnPreCull(Boolean) (at ./Packages/nadena.dev.ndmf/Editor/PreviewSystem/PreviewSession.cs:51)
nadena.dev.ndmf.preview.ProxyManager:OnPreCull(Camera) (at ./Packages/nadena.dev.ndmf/Editor/PreviewSystem/ProxyManager.cs:61)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

Material Setter と Shape Changer の場合は 7 でエラーは発生しないが Game Object のアクティブ/非アクティブを切り替えてもプレビューが更新されないようです。

NDMF/MA は 39a7dee/8ed649f (現時点の最新) で確認しました。

bdunderscore commented 3 weeks ago

346, #347 で修正したと思いますので再確認お願いします。

nekobako commented 3 weeks ago

修正確認できました!mm