autohide cursor
This commit is contained in:
1 parent
373baed62b
commit
0df6510da7
10 files changed
+89
-20
No files matched your search
@@ -0,0 +1,26 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
|
||||
public class CursorHide : MonoBehaviour {
|
||||
public float hideAfterSeconds = 3f;
|
||||
public float thresholdInPixels = 3f;
|
||||
|
||||
float _lastTime;
|
||||
Vector3 _lastMousePos;
|
||||
|
||||
void Start () {
|
||||
_lastTime = Time.timeSinceLevelLoad;
|
||||
_lastMousePos = Input.mousePosition;
|
||||
}
|
||||
|
||||
void Update () {
|
||||
Vector2 dx = Input.mousePosition - _lastMousePos;
|
||||
bool move = (dx.sqrMagnitude > (thresholdInPixels * thresholdInPixels));
|
||||
_lastMousePos = Input.mousePosition;
|
||||
|
||||
if (move)
|
||||
_lastTime = Time.timeSinceLevelLoad;
|
||||
|
||||
Cursor.visible = (Time.timeSinceLevelLoad - _lastTime) < hideAfterSeconds;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7e3f63f71f856934f8bb5743688a4732
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user