From 2a8c2ec3ceb720a344e966509957641e51146d62 Mon Sep 17 00:00:00 2001 From: bd_ Date: Wed, 8 Feb 2023 21:04:47 +0900 Subject: [PATCH] fix: NPE in blendshape sync editor --- .../Editor/Inspector/BlendshapeSyncEditor.cs | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/Packages/nadena.dev.modular-avatar/Editor/Inspector/BlendshapeSyncEditor.cs b/Packages/nadena.dev.modular-avatar/Editor/Inspector/BlendshapeSyncEditor.cs index cc062725..40613dc7 100644 --- a/Packages/nadena.dev.modular-avatar/Editor/Inspector/BlendshapeSyncEditor.cs +++ b/Packages/nadena.dev.modular-avatar/Editor/Inspector/BlendshapeSyncEditor.cs @@ -126,17 +126,26 @@ namespace nadena.dev.modular_avatar.core.editor { EditorGUI.PropertyField(meshFieldRect, mesh, GUIContent.none); - var sourceMesh = - (targets.Length == 1 ? target as ModularAvatarBlendshapeSync : null)?.Bindings[index] - .ReferenceMesh.Get((Component) target) - ?.GetComponent() - ?.sharedMesh; - DrawBlendshapePopup(sourceMesh, baseShapeNameRect, sourceBlendshape); + Mesh sourceMesh = null, localMesh = null; + if (targets.Length == 1) + { + var targetMeshObject = (target as ModularAvatarBlendshapeSync) + ?.Bindings[index] + .ReferenceMesh + ?.Get((Component) target); + if (targetMeshObject != null) + { + sourceMesh = targetMeshObject.GetComponent() + ?.sharedMesh; + } - var localMesh = - (targets.Length == 1 ? target as ModularAvatarBlendshapeSync : null)? - .GetComponent() - ?.sharedMesh; + localMesh = + (target as ModularAvatarBlendshapeSync) + ?.GetComponent() + ?.sharedMesh; + } + + DrawBlendshapePopup(sourceMesh, baseShapeNameRect, sourceBlendshape); DrawBlendshapePopup(localMesh, targetShapeNameRect, localBlendshape, sourceBlendshape.stringValue); }