autohide cursor
This commit is contained in:
1 parent
373baed62b
commit
0df6510da7
10 files changed
+89
-20
No files matched your search
@@ -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