autohide cursor

This commit is contained in:
ntr committed 2022-06-05 21:19:18 +10:00
1 parent 373baed62b
commit 0df6510da7
10 files changed
+89 -20

No files matched your search

+27
View File
@@ -18,6 +18,11 @@ public class Loader : MonoBehaviour {
private KeyCode PrevButton = KeyCode.Backspace;
private KeyCode MenuButton = KeyCode.Escape;
public float mouseHideTimeSeconds = 3f;
public float mouseHideThreshold = 3f;
float mouseLastMoveTime;
Vector3 mouseLastMovePos;
void Awake() {
ToggleMenu(menuVisible);
}
@@ -26,6 +31,11 @@ public class Loader : MonoBehaviour {
scene = SceneManager.GetActiveScene();
currentVis.text = scene.name;
// Debug.Log("Active Scene name is: " + scene.name + "\nActive Scene index: " + scene.buildIndex);
// cursor visibility
mouseLastMoveTime = Time.timeSinceLevelLoad;
mouseLastMovePos = Input.mousePosition;
}
void Update() {
@@ -40,6 +50,8 @@ public class Loader : MonoBehaviour {
if (Input.GetKeyDown(MenuButton)) {
ToggleMenu(!menuVisible);
}
CheckMouseVisibility();
}
void VfxMenuVisible(bool v) {
@@ -58,6 +70,21 @@ public class Loader : MonoBehaviour {
menuVisible = visible;
}
void CheckMouseVisibility() {
if (menuVisible) {
Vector2 dx = Input.mousePosition - mouseLastMovePos;
bool move = (dx.sqrMagnitude > (mouseHideThreshold * mouseHideThreshold));
mouseLastMovePos = Input.mousePosition;
if (move)
mouseLastMoveTime = Time.timeSinceLevelLoad;
Cursor.visible = (Time.timeSinceLevelLoad - mouseLastMoveTime) < mouseHideTimeSeconds;
} else {
Cursor.visible = false;
}
}
public void NextScene() {
int current = scene.buildIndex;
int next = (current + 1) % (SceneManager.sceneCountInBuildSettings);