|  |  | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private Bone followedBone; | 
 |  |  |  | 
 |  |  |     public bool isBindBone = false; | 
 |  |  |  | 
 |  |  |     public bool isRedCamp = true; | 
 |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             blocker.SetSortingOrder(finalSortingOrder); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void FollowBoneXY() | 
 |  |  |     { | 
 |  |  |         if (followedBone == null || !isBindBone) | 
 |  |  |         { | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         Vector2 vector2 = Vector2.zero; | 
 |  |  |  | 
 |  |  |         if (effectConfig.effectPos != null && effectConfig.effectPos.Length >= 2) | 
 |  |  |         { | 
 |  |  |             vector2 = new Vector2((isRedCamp ? 1f : -1f) * effectConfig.effectPos[0], effectConfig.effectPos[1]); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if (spineComp != null) | 
 |  |  |         { | 
 |  |  |             spineComp.transform.localPosition = new Vector3(followedBone.WorldX + vector2.x, followedBone.WorldY + vector2.y, 0); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if (effectTarget != null) | 
 |  |  |         { | 
 |  |  |             effectTarget.transform.localPosition = new Vector3(followedBone.WorldX + vector2.x, followedBone.WorldY + vector2.y, 0); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         isBindBone = true; | 
 |  |  |         followedBone = bone; | 
 |  |  |  | 
 |  |  |         BoneFollower boneFollower = gameObject.AddMissingComponent<BoneFollower>(); | 
 |  |  |         boneFollower.boneName = v; |