ariedel Geschrieben 1. September 2021 Melden Share Geschrieben 1. September 2021 Hallo zusammen, ich habe ein Modell einer Windkraftanlage erstellt. Die Komponenten habe ich in Unity 2019.4.28f1 mit Pop-Up-Fenstern versehen. Sprich sobald ich diese mit der Maus anklicke, wird ein Fenster mit Informationen geöffnet. Nun habe ich das Ganze noch mit Hilfe des MRTK so konfiguriert, dass ich das Modell in VR sehen kann. Auch die Controller kann ich im Modell sehen. Leider schaffe ich es nicht, die Fenster mit Hilfe des Triggers anstelle des Mausklicks zu öffnen. Kann mir jemand helfen? Folgendes Skript verwende ich für die Mauseingabe: using System.Collections; using System.Collections.Generic; using UnityEngine; public class Gondel : MonoBehaviour { public GameObject TextBox2; void OnMouseDown() { if (TextBox2 != null) { bool isActive = TextBox2.activeSelf; TextBox2.SetActive(!isActive); } } } Folgende Hardware nutze ich: VR-Headset samt Motioncontroller: HP 1440² SPATIAL Computing Gruß Alex Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 1. September 2021 Melden Share Geschrieben 1. September 2021 Moin, was benutzt du denn als VR-Bibliothek? Bei SteamVR würde ich das noch zusammenkriegen, die anderen habe ich nie benutzt. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
ariedel Geschrieben 2. September 2021 Autor Melden Share Geschrieben 2. September 2021 Moin, ich nutze einfach das Mixed Reality Portal von Microsoft. Und in Unity habe ich das MixedRealityToolKit installiert. Ich bin jetzt soweit, dass ich Buttons mit den Controllern betätigen kann. Nur das Klicken auf die Gameobjekte will einfach nicht funktioniern (bzw. ich kann draufklicken aber es öffnet sich kein Fenster). Folgenden Code habe ich dafür verwendet: using UnityEngine; using UnityEngine.EventSystems; public class GondelVR : MonoBehaviour, IPointerClickHandler { public GameObject TextBox2; //Detect if a click occurs public void OnPointerClick(PointerEventData pointerEventData) { if (TextBox2 != null) { bool isActive = TextBox2.activeSelf; TextBox2.SetActive(!isActive); } } } Ich habe auf das Gameobjekt ein Mesh-Collider gelegt und dann mein Skript hinzugefügt. Was mache ich falsch? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 2. September 2021 Melden Share Geschrieben 2. September 2021 IPointerClickHandler sind für das EventSystem von UnityEngine.UI. Ich kann nicht sagen, ob Microsofts Paket das unterstützt. Hast du von Microsoft keine Ressourcen dazu gefunden? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
ariedel Geschrieben 2. September 2021 Autor Melden Share Geschrieben 2. September 2021 Moin, also so wie ich das verstehe unterstützt Microsoft das Ganze. Ich hab mal ein Screenshot von dem Projekt gemacht. Vllt erkennt man da ja schon einen Fehler. Dort kann ich auch die Komponente "PointerHandler" hinzufügen. Weiß aber nicht was ich damit dann genau machen muss... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 2. September 2021 Melden Share Geschrieben 2. September 2021 Ich glaube, du bringst da ein paar Systeme durcheinander. Ein MeshCollider ist kein UI-Element. Wenn du auf einen Collider drücken willst dann musst du von irgendwo aus einen Raycast schießen. Bei einer Anwendung auf einem normalen Bildschirm wäre das z.B. von der Kamera aus in Abhängigkeit zur Mausposition. In VR ist das alles nicht so standartisiert, da kann man entweder den Controller wie einen Laser Pointer benutzen oder in die Nähe halten. Ersteres wäre wieder ein Raycast, aber halt vom Controller aus und nicht von der Kamera, letzteres wäre z.B. mit einem Trigger am Collider zu machen. Die ganzen PointerHandler-Dinger sind für UI-Elemente da, also das, was du in einem UI-Canvas unterbringst. Das ist ein völlig anderes System, das mit Colliders nichts am Hut hat. Was allerdings sein kann ist, dass Microsoft da Interfaces von Unity schlicht zweckentfremdet und das, was du da tust, tatsächlich dem entspricht, was Microsoft vorsieht. In dem Fall müsstest du dich aber direkt bei Microsoft informieren, die haben für ihr Paket hoffentlich eine brauchbare Dokumentation. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MaZy Geschrieben 22. September 2021 Melden Share Geschrieben 22. September 2021 Am 2.9.2021 um 13:01 schrieb Sascha: IPointerClickHandler sind für das EventSystem von UnityEngine.UI. Ich kann nicht sagen, ob Microsofts Paket das unterstützt. Hast du von Microsoft keine Ressourcen dazu gefunden? Unity hat dazu allgemeine VR Packages, wo man nur beim Canvas ein Component reinpacken muss. Zusätzlich noch paar für die Controller für die Raycasts. Danach gehen diese Events auch normal für VR. https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@1.0/manual/index.html#ui-interaction-setup Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.