From 37de29656f9105c5416036652bc1c1ecacd42b43 Mon Sep 17 00:00:00 2001 From: kaikoga Date: Sat, 30 Dec 2023 12:08:51 +0900 Subject: [PATCH] hack: more null check AvatarDescriptors --- Editor/FixupPasses/FixupExpressionsMenuPass.cs | 2 ++ Editor/MergeAnimatorProcessor.cs | 1 + Editor/OptimizationPasses/PruneParametersPass.cs | 2 ++ Editor/RenameParametersHook.cs | 2 ++ 4 files changed, 7 insertions(+) diff --git a/Editor/FixupPasses/FixupExpressionsMenuPass.cs b/Editor/FixupPasses/FixupExpressionsMenuPass.cs index f4b549ee9..4f36ec2bb 100644 --- a/Editor/FixupPasses/FixupExpressionsMenuPass.cs +++ b/Editor/FixupPasses/FixupExpressionsMenuPass.cs @@ -19,6 +19,8 @@ internal class FixupExpressionsMenuPass internal static void FixupExpressionsMenu(BuildContext context) { + if (!context.AvatarDescriptor) return; + context.AvatarDescriptor.customExpressions = true; var expressionsMenu = context.AvatarDescriptor.expressionsMenu; diff --git a/Editor/MergeAnimatorProcessor.cs b/Editor/MergeAnimatorProcessor.cs index 953713107..230a72a84 100644 --- a/Editor/MergeAnimatorProcessor.cs +++ b/Editor/MergeAnimatorProcessor.cs @@ -65,6 +65,7 @@ internal void OnPreprocessAvatar(GameObject avatarGameObject, BuildContext conte mergeSessions.Clear(); var descriptor = avatarGameObject.GetComponent(); + if (!descriptor) return; if (descriptor.baseAnimationLayers != null) InitSessions(descriptor.baseAnimationLayers); if (descriptor.specialAnimationLayers != null) InitSessions(descriptor.specialAnimationLayers); diff --git a/Editor/OptimizationPasses/PruneParametersPass.cs b/Editor/OptimizationPasses/PruneParametersPass.cs index 97da2939e..3d0f0f1c1 100644 --- a/Editor/OptimizationPasses/PruneParametersPass.cs +++ b/Editor/OptimizationPasses/PruneParametersPass.cs @@ -7,6 +7,8 @@ internal class PruneParametersPass : Pass { protected override void Execute(ndmf.BuildContext context) { + if (!context.AvatarDescriptor) return; + var expParams = context.AvatarDescriptor.expressionParameters; if (expParams != null && context.IsTemporaryAsset(expParams)) { diff --git a/Editor/RenameParametersHook.cs b/Editor/RenameParametersHook.cs index 01d00727b..35b62b999 100644 --- a/Editor/RenameParametersHook.cs +++ b/Editor/RenameParametersHook.cs @@ -42,6 +42,8 @@ public void OnPreprocessAvatar(GameObject avatar, BuildContext context) private void SetExpressionParameters(GameObject avatarRoot) { var avatar = avatarRoot.GetComponent(); + if (!avatar) return; + var expParams = avatar.expressionParameters; if (expParams == null)