From 4b8dbcf7ec08d660d40453d46f2027f9759ee2ae Mon Sep 17 00:00:00 2001 From: ousttrue Date: Fri, 26 Jun 2026 11:17:39 +0900 Subject: [PATCH] SceneView.duringSceneGui --- .../VRM10/Editor/VRM10SpringBoneWindow.cs | 33 ++++++++++++++++++- Packages/VRM10/Editor/Vrm10InstanceEditor.cs | 16 --------- 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/Packages/VRM10/Editor/VRM10SpringBoneWindow.cs b/Packages/VRM10/Editor/VRM10SpringBoneWindow.cs index 6c8e50db2..9189d2cdd 100644 --- a/Packages/VRM10/Editor/VRM10SpringBoneWindow.cs +++ b/Packages/VRM10/Editor/VRM10SpringBoneWindow.cs @@ -12,7 +12,6 @@ namespace UniVRM10 ObjectField m_target; SerializedObject serializedObject; ListView m_springs; - public int SelectedIndex => m_springs.selectedIndex; Vrm10Instance Vrm { get @@ -93,5 +92,37 @@ namespace UniVRM10 selected.style.marginLeft = 12; splitView.Add(selected); } + + private void OnEnable() + { + SceneView.duringSceneGui += OnSceneGUI; + } + + private void OnDisable() + { + SceneView.duringSceneGui -= OnSceneGUI; + } + + void OnSceneGUI(SceneView sceneView) + { + HandleUtility.Repaint(); + + // 選択中の SpringBone + if (m_springs != null && m_springs.selectedIndex >= 0 + && m_springs.selectedIndex < Vrm.SpringBone.Springs.Count) + { + Handles.color = Color.red; + var selected = Vrm.SpringBone.Springs[m_springs.selectedIndex]; + for (int i = 1; i < selected.Joints.Count; ++i) + { + var head = selected.Joints[i - 1]; + var tail = selected.Joints[i]; + if (head != null && tail != null) + { + Handles.DrawLine(head.transform.position, tail.transform.position); + } + } + } + } } } \ No newline at end of file diff --git a/Packages/VRM10/Editor/Vrm10InstanceEditor.cs b/Packages/VRM10/Editor/Vrm10InstanceEditor.cs index 8184818c9..1f41bd7af 100644 --- a/Packages/VRM10/Editor/Vrm10InstanceEditor.cs +++ b/Packages/VRM10/Editor/Vrm10InstanceEditor.cs @@ -463,22 +463,6 @@ namespace UniVRM10 // 親指のガイド DrawThumbGuide(target as Vrm10Instance); - - // 選択中の SpringBone - if (m_springBone != null && m_springBone.SelectedIndex >= 0 && m_springBone.SelectedIndex < m_instance.SpringBone.Springs.Count) - { - Handles.color = Color.red; - var selected = m_instance.SpringBone.Springs[m_springBone.SelectedIndex]; - for (int i = 1; i < selected.Joints.Count; ++i) - { - var head = selected.Joints[i - 1]; - var tail = selected.Joints[i]; - if (head != null && tail != null) - { - Handles.DrawLine(head.transform.position, tail.transform.position); - } - } - } } static void DrawThumbGuide(Vrm10Instance instance)