【Unity】カーソル処理について
カーソル処理について
UNITY5よりカーソルの処理が変更されました。
UNITY4まではScreen関数で処理していましたが、UNITY5以降変更されています。
UNITYのマニュアルには以下の記載があります。
Removed in version 5.0.0
Property showCursor has been deprecated. Use Cursor.visible instead (UnityUpgradable).
意味 5.0.0より削除したんで Cursor.visible を使ってねw
以前までの処理(UNITY 4.6.2)は、こんな感じでした。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void Start()
{
// マウスカーソルを削除する
Screen.showCursor = false;
// マウスカーソルを画面内にロックする
Screen.lockCursor = true;
}
}
UNITY5以降の記述例です。F1 F2 F3で切り替えできるようにしました。コピペして、適当なOBJECTに張ってもらえれば動くと思います。
using UnityEngine;
using System.Collections;
public class Cursor_Test:MonoBehaviour
{
CursorLockMode wantedMode = CursorLockMode.None;
void Start()
{
// 初期動作
Cursor.lockState = wantedMode;
}
void Update()
{
//
if (Input.GetKeyDown(KeyCode.F1))
{
Cursor.lockState = wantedMode = CursorLockMode.None; //標準モード
Debug.Log("DEBUG:Cursor is normal");
Cursor.visible = true; //OSカーソル表示
}
if (Input.GetKeyDown(KeyCode.F2))
{
Cursor.lockState = wantedMode = CursorLockMode.Confined; //はみ出さないモード
Debug.Log("DEBUG:Cursor is confined");
Cursor.visible = false; //OSカーソル非表示
}
if (Input.GetKeyDown(KeyCode.F3))
{
Cursor.lockState = wantedMode = CursorLockMode.Locked; //動かないw
Debug.Log("DEBUG:Cursor is locked");
Cursor.visible = false; //OSカーソル非表示
}
}
}
詳細な解説
OSカーソルの表示切替は、Cursor.visibleにて制御。
Cursor.visible = True(表示)/false(非表示)
制御は3種類あります。
None ノーマルモード(Cursor behavior is unmodified.)
Locked 動かなくなります。(Lock cursor to the center of the game window.)
Confined GameWindowの外に出ないようにします。(Confine cursor to the game window.)