using UnityEditor; using UnityEngine; public class UIHandleMain : UIHandle { public static UIHandleMain CreateAsChild(ObjectContainer owner) { var handle = CreateAsChild(owner.transform); handle.Init(owner).SetColor(Color.yellow).SetScale(1.5f); return handle; } public override UIHandle Init(ObjectContainer owner) { base.Init(owner); Popup.AddButton("Reset All", TransformResetAll); Popup.AddButton("Reset Position", TransformResetPosition); Popup.AddButton("Reset Rotation", TransformResetRotation); Popup.AddButton("Reset Scale", TransformResetScale); Popup.AddButton("Reset Children", ResetBones); Popup.AddButton("Delete", () => Destroy(Owner)); return this; } public void ResetBones() { using (var context = new KeyframeToggleContext(Owner, false)) { foreach (var bone in Owner.GetComponentsInChildren()) { bone.TransformResetAll(); } } Owner.SetKeyframe(); } protected override bool ShouldBeHidden() { return _forceDisplayOff || !HandleManager.Instance.EnabledHandles.Contains(SerializableBone.BoneTags.Root); } }