From 7d64d6b7a9180142db488882068394bebea293f6 Mon Sep 17 00:00:00 2001
From: JLChnToZ <jeremylam619@gmail.com>
Date: Sun, 3 Nov 2024 22:14:31 +0800
Subject: [PATCH] Rearrange method

---
 Editor/WorldFixedObjectProcessor.cs | 24 +++++++++---------------
 1 file changed, 9 insertions(+), 15 deletions(-)

diff --git a/Editor/WorldFixedObjectProcessor.cs b/Editor/WorldFixedObjectProcessor.cs
index 7c4b6edc..35298392 100644
--- a/Editor/WorldFixedObjectProcessor.cs
+++ b/Editor/WorldFixedObjectProcessor.cs
@@ -86,20 +86,7 @@ namespace nadena.dev.modular_avatar.core.editor
             obj.transform.localRotation = Quaternion.identity;
             obj.transform.localScale = Vector3.one;
 
-#if MA_VRCSDK3_AVATARS_3_7_0_OR_NEWER
-            var isVrcAvatar = avatarRoot.TryGetComponent(out VRC.SDKBase.VRC_AvatarDescriptor _);
-
-            if (isVrcAvatar)
-            {
-                CreateVRCConstraint(obj);
-            }
-            else
-            {
-                CreateConstraint(obj, fixedGameObject);
-            }
-#else
-            CreateConstraint(obj, fixedGameObject);
-#endif
+            if (!TryCreateVRCConstraint(avatarRoot, obj)) CreateConstraint(obj, fixedGameObject);
 
             _proxy = obj.transform;
 
@@ -121,8 +108,12 @@ namespace nadena.dev.modular_avatar.core.editor
         }
 
 #if MA_VRCSDK3_AVATARS_3_7_0_OR_NEWER
-        private void CreateVRCConstraint(GameObject obj)
+        private bool TryCreateVRCConstraint(Transform avatarRoot, GameObject obj)
         {
+            var isVrcAvatar = avatarRoot.TryGetComponent(out VRC.SDKBase.VRC_AvatarDescriptor _);
+            
+            if (!isVrcAvatar) return false;
+
             var constraint = obj.AddComponent(
                 System.Type.GetType("VRC.SDK3.Dynamics.Constraint.Components.VRCParentConstraint, VRC.SDK3.Dynamics.Constraint")
             ) as VRC.Dynamics.ManagedTypes.VRCParentConstraintBase;
@@ -135,7 +126,10 @@ namespace nadena.dev.modular_avatar.core.editor
             constraint.AffectsRotationY = true;
             constraint.AffectsRotationZ = true;
             constraint.FreezeToWorld = true;
+            return true;
         }
+#else
+        private bool TryCreateVRCConstraint(Transform avatarRoot, GameObject obj) => false;
 #endif
     }
 }
\ No newline at end of file