- Unityでマウスを押したときの処理を設定したいなぁ
という悩みを解決します。
●処理を設定できるメソッド
Input.GetMouseButtonDown | マウスをクリックした瞬間にtrueを返す |
Input.GetMouseButtonDown(0) | 左クリックした瞬間にtrueを返す |
Input.GetMouseButtonDown(1) | 右クリックした瞬間にtrueを返す |
Input.GetMouseButtonDown(2) | 中ボタンクリックした瞬間にtrueを返す |
Input.GetMouseButtonDownはクリックした瞬間にtrueを返す
このメソッドを使うことによって、マウスをクリックした瞬間にtrueを返します。
例:右クリックするとspeed変数の値を3にする
if (Input.GetMouseButtonDown(1))
{
this.speed = 3;
}
とりあえずクリック時の処理を設定できるメソッドです。
実際に
「Input.GetMouseButtonDown」を使ってみよう
●流れ
- オブジェクトを設置する
- オブジェクトにスクリプトをアタッチ
- スクリプトの中身を書く
- 実行する
2Dでやっていますが、3Dでももちろんできるので安心してください。またオブジェクトに立方体(正方形)を使っていますが、なんでも構いません。
オブジェクトを設置する
●オブジェクトを設置する
【Hierarchyウィンドウ】→【Create】→【3D Object】→【Cube】
オブジェクトにスクリプトをアタッチ
●スクリプト作成
【Cube選択】→【Inspector】→【Add Component】→【New Script】→【Test】
スクリプト名はテストにしておきますね。なんでもよろし。アタッチしなければ使えません。
スクリプトの中身を書く
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
float speed = 0; // 変数宣言
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
// マウスの左ボタンを推したらスピード向上
if (Input.GetMouseButtonDown(0))
{
this.speed = 0.1f;
}
// オブジェクトをx軸に移動
this.gameObject.transform.Translate(this.speed, 0, 0);
// 減速
this.speed *= 0.98f;
}
}
Input.GetMouseButtonDown(0) | 左クリックした瞬間にtrueを返す |
this.gameObject.transform.Translate(this.speed, 0, 0); | アタッチされているゲームオブジェクトを取得してx軸に移動するようにいる |
Projectウィンドウの【Test】スクリプトをダブルクリックして、スクリプトをかいていきましょう。
// マウスの左ボタンを推したらスピード向上
if (Input.GetMouseButtonDown(0))
{
this.speed = 0.1f;
}
ここで【Input.GetMouseButtonDown】を使っていますね。左クリックをすると、speed変数の値が0.1になるように設定されています。
// オブジェクトをx軸に移動
this.gameObject.transform.Translate(this.speed, 0, 0);
アタッチされているオブジェクト【Cube】を取得して、x軸にspeed変数の値だけ移動するようにしていますね。
// 減速
this.speed *= 0.98f;
一生移動し続けてもしょうがないので、減速させています。
実行する
X軸方向に動いていますね。
ちなみに
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
float speed = 0; // 変数宣言
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
// マウスの左ボタンを推したらスピード向上
if (Input.GetMouseButtonDown(0))
{
this.speed = 0.1f;
}
// オブジェクトをx軸に移動
this.gameObject.transform.Translate(this.speed, this.speed, 0);
// 減速
this.speed *= 0.98f;
}
}
このようにすると
x軸方向にもY軸方向にも行くよ。
まとめ
Input.GetMouseButtonDown | マウスをクリックした瞬間にtrueを返す |
Input.GetMouseButtonDown(0) | 左クリックした瞬間にtrueを返す |
Input.GetMouseButtonDown(1) | 右クリックした瞬間にtrueを返す |
Input.GetMouseButtonDown(2) | 中ボタンクリックした瞬間にtrueを返す |
ちょっとInput.GetMouseButtonDownの記事に使うやつ。#ゲーム開発 pic.twitter.com/23AlRjBKvu
— さぎのみや (@saginomiya8) September 13, 2018
当然、2Dでも使えます。
あれっ、Input.GetMouseButtonDownの説明より、移動させる方法の記事になってる!!!
ちょっとぶれましたねぇ。
とりあえずマウスをクリックして、なにかの処理を行うように設定できることはわかっていただけたと思います。
自分で応用して使ってみてくださいね。
あともしUnityでのサンプルゲームをお探しなら、【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろうでゲームを作ってみてくださいね。
コメント