Merge pull request #253 from Santarh/springBoneColliderGroupUtilities

Add utility menu for VRMSpringBoneColliderGroup.
This commit is contained in:
hiroj 2019-06-03 18:10:38 +09:00 committed by GitHub
commit 033bb4f7b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,4 +1,5 @@
using UnityEditor;
using System.Linq;
using UnityEditor;
using UnityEngine;
@ -38,5 +39,43 @@ namespace VRM
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();
}
}
}