using UnityEngine; using Valve.VR; using System; using OpenVRUtil; public class DashboardOverlay : MonoBehaviour { public new Camera camera; public RenderTexture renderTexture; private ulong dashboardHandle = OpenVR.k_ulOverlayHandleInvalid; private ulong thumbnailHandle = OpenVR.k_ulOverlayHandleInvalid; private void Start() { OpenVRUtil.System.InitOpenVR(); (dashboardHandle, thumbnailHandle) = Overlay.CreateDashboardOverlay("f3.beamy.dash", "Beamy Panel"); var filePath = Application.streamingAssetsPath + "/potionGroundy.png"; Overlay.SetOverlayFromFile(thumbnailHandle, filePath); renderTexture = new RenderTexture(1024, 768, 16, RenderTextureFormat.ARGBFloat); camera.targetTexture = renderTexture; Overlay.SetOverlaySize(dashboardHandle, 2.5f); Overlay.FlipOverlayVertical(dashboardHandle); } private void Update() { Overlay.SetOverlayRenderTexture(dashboardHandle, renderTexture); var vrEvent = new VREvent_t(); var uncbVREvent = (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(VREvent_t)); while (OpenVR.Overlay.PollNextOverlayEvent(dashboardHandle, ref vrEvent, uncbVREvent)) { switch ((EVREventType)vrEvent.eventType) { case EVREventType.VREvent_MouseButtonDown: Debug.Log("MouseDown"); break; case EVREventType.VREvent_MouseButtonUp: Debug.Log("MouseUp"); break; } } } private void OnApplicationQuit() { Overlay.DestroyOverlay(dashboardHandle); } private void OnDestroy() { OpenVRUtil.System.ShutdownOpenVR(); } }