Skip to content

Commit

Permalink
Merge pull request #253 from Santarh/springBoneColliderGroupUtilities
Browse files Browse the repository at this point in the history
Add utility menu for VRMSpringBoneColliderGroup.
  • Loading branch information
hiroj authored Jun 3, 2019
2 parents 35b52dd + c9b2d64 commit 033bb4f
Showing 1 changed file with 40 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using UnityEditor;
using System.Linq;
using UnityEditor;
using UnityEngine;


Expand Down Expand Up @@ -38,5 +39,43 @@ private void OnSceneGUI()
EditorUtility.SetDirty(m_target);
}
}

[MenuItem("CONTEXT/VRMSpringBoneColliderGroup/X Mirror")]
private static void InvertOffsetX(MenuCommand command)
{
var target = command.context as VRMSpringBoneColliderGroup;
if (target == null) return;

Undo.RecordObject(target, "X Mirror");

foreach (var sphereCollider in target.Colliders)
{
var offset = sphereCollider.Offset;
offset.x *= -1f;
sphereCollider.Offset = offset;
}
}

[MenuItem("CONTEXT/VRMSpringBoneColliderGroup/Sort Colliders by Radius")]
private static void SortByRadius(MenuCommand command)
{
var target = command.context as VRMSpringBoneColliderGroup;
if (target == null) return;

Undo.RecordObject(target, "Sort Colliders by Radius");

target.Colliders = target.Colliders.OrderBy(x => -x.Radius).ToArray();
}

[MenuItem("CONTEXT/VRMSpringBoneColliderGroup/Sort Colliders by Offset Y")]
private static void SortByOffsetY(MenuCommand command)
{
var target = command.context as VRMSpringBoneColliderGroup;
if (target == null) return;

Undo.RecordObject(target, "Sort Colliders by Offset Y");

target.Colliders = target.Colliders.OrderBy(x => -x.Offset.y).ToArray();
}
}
}

0 comments on commit 033bb4f

Please sign in to comment.