スポンサーリンク

【Unity】カーソル処理について

06/12/2018

カーソル処理について

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.)