Explorar el Código

Regenerate CacheBoneDataArray when appropriate.

NPR Shader seems to do something that nulls the cache bone data so when
getting the cache, check if the bone data is null and regenerate.
habeebweeb hace 4 años
padre
commit
386fb1f4cb

+ 7 - 1
COM3D2.MeidoPhotoStudio.Plugin/MeidoPhotoStudio/Meido/Meido.cs

@@ -677,10 +677,16 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
         private CacheBoneDataArray GetCacheBoneData()
         private CacheBoneDataArray GetCacheBoneData()
         {
         {
             CacheBoneDataArray cache = Maid.gameObject.GetComponent<CacheBoneDataArray>();
             CacheBoneDataArray cache = Maid.gameObject.GetComponent<CacheBoneDataArray>();
+            void CreateCache() => cache.CreateCache(Body.GetBone("Bip01"));
             if (cache == null)
             if (cache == null)
             {
             {
                 cache = Maid.gameObject.AddComponent<CacheBoneDataArray>();
                 cache = Maid.gameObject.AddComponent<CacheBoneDataArray>();
-                cache.CreateCache(Body.GetBone("Bip01"));
+                CreateCache();
+            }
+            if (cache.bone_data?.transform == null)
+            {
+                Utility.LogDebug("Cache bone_data is null");
+                CreateCache();
             }
             }
             return cache;
             return cache;
         }
         }