|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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; | 
|---|