From c2ab6d0bb02d60844662d5e7d12eabe73f1e0de6 Mon Sep 17 00:00:00 2001 From: FlorianSpeicher Date: Mon, 7 Jul 2025 21:02:48 +0200 Subject: [PATCH] Fix Slider --- .../Assets/Scenes/SampleScene.unity | 7 +-- .../Assets/Scripts/UI/BaseModelSelector.cs | 10 +++++ .../Assets/Scripts/UI/SilderHandler.cs | 45 ++++++++++++++----- 3 files changed, 48 insertions(+), 14 deletions(-) diff --git a/vr-configurator/Assets/Scenes/SampleScene.unity b/vr-configurator/Assets/Scenes/SampleScene.unity index 27c0f7d..a487d19 100644 --- a/vr-configurator/Assets/Scenes/SampleScene.unity +++ b/vr-configurator/Assets/Scenes/SampleScene.unity @@ -26849,7 +26849,7 @@ MonoBehaviour: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1591058970} - m_Enabled: 0 + m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} m_Name: @@ -26910,7 +26910,7 @@ MonoBehaviour: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1591058970} - m_Enabled: 1 + m_Enabled: 0 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 2518c50cb3fc6a6458d4b743c2f69c7d, type: 3} m_Name: @@ -36785,8 +36785,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: a28b3692aca31b141907b971599c1e61, type: 3} m_Name: m_EditorClassIdentifier: - basemodel: {fileID: 645201570} + basemodel: {fileID: 0} rotationSlider: {fileID: 2108164464} + joystickSpeed: 50 --- !u!114 &2108164464 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/vr-configurator/Assets/Scripts/UI/BaseModelSelector.cs b/vr-configurator/Assets/Scripts/UI/BaseModelSelector.cs index b58a86e..36535a5 100644 --- a/vr-configurator/Assets/Scripts/UI/BaseModelSelector.cs +++ b/vr-configurator/Assets/Scripts/UI/BaseModelSelector.cs @@ -48,6 +48,16 @@ public class BaseModelSelector : MonoBehaviour } modelManager.LoadSelectedModel(model); + if (sliderHandler != null && modelManager.baseModelGO != null) + { + Debug.LogWarning("Setting BaseModel for SliderHandler"); + sliderHandler.SetBaseModel(modelManager.baseModelGO); + } + else + { + Debug.LogWarning("Setting BaseModel for SliderHandler geht nit: SliderHandler: " + sliderHandler + ", BaseModelGO: " + modelManager.baseModelGO); + } + if (portSelector == null) { Debug.LogError("PortSelector is null!"); diff --git a/vr-configurator/Assets/Scripts/UI/SilderHandler.cs b/vr-configurator/Assets/Scripts/UI/SilderHandler.cs index 667613e..b103945 100644 --- a/vr-configurator/Assets/Scripts/UI/SilderHandler.cs +++ b/vr-configurator/Assets/Scripts/UI/SilderHandler.cs @@ -1,43 +1,66 @@ -using System; using UnityEngine; using UnityEngine.UI; public class SilderHandler : MonoBehaviour { - public GameObject basemodel; + public GameObject basemodel; public Slider rotationSlider; - private float x; - private float z; - private float y; + public float joystickSpeed = 50f; + + private float x, y, z; + + public void SetBaseModel(GameObject model) + { + basemodel = model; + if (basemodel == null) + Debug.LogError("SetBaseModel: Übergebenes Modell ist null!"); + } + void Start() { if (rotationSlider != null) - { - rotationSlider.onValueChanged.AddListener(OnSliderValueChanged); - } else - { Debug.LogError("RotationSlider ist nicht zugewiesen!"); + } + + void Update() + { + float joystickInput = 0f; + try + { + joystickInput = Input.GetAxis("Oculus_CrossPlatform_SecondaryThumbstickHorizontal"); + } + catch + { + // Keine Achse vorhanden oder kein Controller angeschlossen + joystickInput = 0f; + } + + if (Mathf.Abs(joystickInput) > 0.1f) + { + rotationSlider.value += joystickInput * joystickSpeed * Time.deltaTime; } } + private void OnSliderValueChanged(float value) { if (basemodel != null) { x = basemodel.transform.eulerAngles.x; z = basemodel.transform.eulerAngles.z; - basemodel.transform.rotation = Quaternion.Euler(x, value, z); + basemodel.transform.rotation = Quaternion.Euler(x, value, z); } else { Debug.LogError("Basemodel ist nicht zugewiesen!"); } } + public void getRotation(Quaternion modelRotation) { Vector3 eulerRotation = modelRotation.eulerAngles; rotationSlider.minValue = eulerRotation.y; rotationSlider.maxValue = eulerRotation.y + 360f; } -} +} \ No newline at end of file