Tanoda
ToggleVR.cs
Go to the documentation of this file.
1using System.Collections;
2using System.Collections.Generic;
3using System.Linq;
4using NaughtyAttributes;
5using UnityEngine;
6using UnityEngine.XR;
7
8public class ToggleVR : MonoBehaviour
9{
10 public bool AutoToggle = false;
11 private readonly List<float> avgFps = new List<float>();
12 [ReadOnly]
13 private float avgFPS = 0.0f;
14 private GameObject player;
15
16 public void Toggle()
17 {
18 XRSettings.enabled = !XRSettings.enabled;
19 if (player)
20 {
21 player.SetActive(XRSettings.enabled);
22 }
23 else
24 {
25 player = GameObject.Find("Player");
26 player?.SetActive(XRSettings.enabled);
27 }
28 }
29
30 [Button]
31 public void DisableVR()
32 {
33 XRSettings.enabled = false;
34 }
35 [Button]
36 public void EnableVR()
37 {
38 XRSettings.enabled = true;
39 }
40
41 void Update()
42 {
43 if (avgFps.Count < 90)
44 {
45 avgFps.Add(1/Time.deltaTime);
46 }
47 else
48 {
49 avgFps.Add(1/Time.deltaTime);
50 avgFps.RemoveAt(0);
51 if (AutoToggle)
52 {
53 if (avgFps.Average() < 24)
54 {
55 if (XRSettings.enabled)
56 {
57 XRSettings.enabled = false;
58 }
59 }
60 else
61 {
62 if (!XRSettings.enabled)
63 {
64 XRSettings.enabled = true;
65 }
66 }
67 }
68 }
69
70 avgFPS = avgFps.Average();
71 }
72}
UnityEngine.UI.Button Button
Definition: Pointer.cs:7
void EnableVR()
Definition: ToggleVR.cs:36
void DisableVR()
Definition: ToggleVR.cs:31
bool AutoToggle
Definition: ToggleVR.cs:10
void Toggle()
Definition: ToggleVR.cs:16