Unityでマウスクリックがあった時の状態取得メソッドとして、 Input.GetMouseButtonDown()
などがあります。
それらの種類や内容について説明します。
目次
1.GetMouseButtonDown()
これはマウスが押された瞬間にtrue、それ以外の時はfalseを返します。
マウスが押された瞬間に何か実行したいような時に使用します。
()の中に入れる数値によって、
GetMouseButtonDown(0):左ボタンクリック時
GetMouseButtonDown(1):右ボタンクリック時
GetMouseButtonDown(2):中ボタンクリック時
のようにどのマウスボタンが押されたかチェックする対象が変わります。
以下に例を示します。
このスクリプトがいずれかのオブジェクトにアタッチされているとするものとします。
その場合、このスクリプトではupdate()の中でマウスの左ボタンが押された瞬間をチェックしており、押されたらその時の座標をVector3型のposition変数に格納しています。
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
// 左ボタンクリックしたときに
if (Input.GetMouseButtonDown(0))
{
Vector3 position = Input.mousePosition;
}
}
}
2.GetMouseButton()
これはマウスが押されている間true、それ以外の時はfalseを返します。
マウスが押されている間何か実行したり、マウスが押されているかどうか判断したいような場合に使用します。
先程と同様()の中に入れる数値によって、
GetMouseButton(0):左ボタンクリック時
GetMouseButton(1):右ボタンクリック時
GetMouseButton(2):中ボタンクリック時
のようにどのマウスボタンが押されているかチェックする対象が変わります。
先程とほとんど同様ですが以下に例を示します。
このスクリプトがいずれかのオブジェクトにアタッチされているとするものとします。
その場合、このスクリプトではupdate()の中でマウスの左ボタンが押されているかをチェックしており、押されていたらその間その時の座標をVector3型のposition変数に格納し続けます。
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
// 左ボタンクリックしたときに
if (Input.GetMouseButton(0))
{
Vector3 position = Input.mousePosition;
}
}
}
3.GetMouseButtonUp()
これはマウスから手を離した瞬間にtrue、それ以外の時はfalseを返します。
マウスを押した瞬間ではなくて最後に手を離した瞬間に何か実行したいような時に使用します。
()の中に入れる数値によって、
GetMouseButtonUp(0):左ボタンクリック時
GetMouseButtonUp(1):右ボタンクリック時
GetMouseButtonUp(2):中ボタンクリック時
のようにどのマウスボタンから手を離したかのチェックする対象が変わります。
先程と同様ですが以下に例を示します。
このスクリプトがいずれかのオブジェクトにアタッチされているとするものとします。
その場合、このスクリプトではupdate()の中でマウスの左ボタンから手を離した瞬間をチェックしており、手を離したらその時の座標をVector3型のposition変数に格納しています。
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
// 左ボタンクリックしたときに
if (Input.GetMouseButtonUp(0))
{
Vector3 position = Input.mousePosition;
}
}
}
以上がUnityでマウスの左、右ボタンなどが押された時のメソッド(GetMouseButtonDown()など)についての内容とその実行例になります。