using Microsoft.MixedReality.Toolkit.Input; using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; public class Envelopes : MonoBehaviour, IMixedRealityTouchHandler { public List<GameObject> uiElements; // Liste f�r alle �bergeordneten UI-Elemente (TextMeshPro und Buttons) void Start() { SetElementsVisibility(false); // Initial unsichtbar } public void OnTouchStarted(HandTrackingInputEventData eventData) { SetElementsVisibility(true); // Sichtbar machen } public void OnTouchCompleted(HandTrackingInputEventData eventData) { SetElementsVisibility(false); // Wieder unsichtbar machen } public void OnTouchUpdated(HandTrackingInputEventData eventData) { } void SetElementsVisibility(bool isVisible) { foreach (var element in uiElements) { SetVisibilityRecursive(element, isVisible); } } void SetVisibilityRecursive(GameObject obj, bool isVisible) { // TextMeshPro-Komponente TextMeshPro textMeshPro = obj.GetComponent<TextMeshPro>(); if (textMeshPro != null) { textMeshPro.color = new Color(textMeshPro.color.r, textMeshPro.color.g, textMeshPro.color.b, isVisible ? 1.0f : 0.0f); } // Renderer-Komponente (f�r andere visuelle Elemente) Renderer renderer = obj.GetComponent<Renderer>(); if (renderer != null) { renderer.enabled = isVisible; } // Weitere UI-Komponenten var graphic = obj.GetComponent<UnityEngine.UI.Graphic>(); if (graphic != null) { graphic.color = new Color(graphic.color.r, graphic.color.g, graphic.color.b, isVisible ? 1.0f : 0.0f); } // Rekursiv f�r alle Kinderobjekte foreach (Transform child in obj.transform) { SetVisibilityRecursive(child.gameObject, isVisible); } } }