mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-05-11 21:14:19 -05:00
Merge pull request #253 from Santarh/springBoneColliderGroupUtilities
Add utility menu for VRMSpringBoneColliderGroup.
This commit is contained in:
commit
033bb4f7b0
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user