void SkeletonBonesView_OnRemoveBone(SkeletonBonesView.ViewMode viewMode, JointType jointType, Transform boneTransform)
 {
     switch (viewMode)
     {
     case SkeletonBonesView.ViewMode.AssignedBones:
         SkeletonMapper_onDrop(null, jointType);
         break;
     }
 }
        protected virtual void OnDisable()
        {
            skeletonMapper.OnDrop     -= SkeletonMapper_onDrop;
            skeletonMapper.OnSelected -= SkeletonMapper_onSelected;
            skeletonMapper             = null;

            skeletonJointListUI.OnDrop     -= SkeletonMapper_onDrop;
            skeletonJointListUI.OnSelected -= SkeletonMapper_onSelected;
            skeletonJointListUI             = null;

            ViewMode = skeletonBonesView.CurrentViewMode;

            skeletonBonesView.OnBoneSelected -= SkeletonBonesView_OnBoneSelected;
            skeletonBonesView.OnRemoveBone   -= SkeletonBonesView_OnRemoveBone;
            skeletonBonesView = null;
        }
        void SkeletonBonesView_OnBoneSelected(SkeletonBonesView.ViewMode viewMode, JointType jointType, Transform boneTransform)
        {
            switch (viewMode)
            {
            case SkeletonBonesView.ViewMode.ModelBones:
                if (SelectJoint != JointType.None)
                {
                    SkeletonMapper_onDrop(boneTransform, SelectJoint);
                    SkeletonMapper_onSelected(JointType.None);
                }

                if (boneTransform != null)
                {
                    EditorGUIUtility.PingObject(boneTransform);
                }
                break;

            case SkeletonBonesView.ViewMode.AssignedBones:
                SkeletonMapper_onSelected(jointType);
                break;
            }
        }