▼そのUnityの作業、依頼しませんか?
メソッド

【Unity】マウスが左・右クリックされたときの処理を設定できるメソッド

マウスクリック時の処理
  • 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」を使ってみよう

●流れ

  1. オブジェクトを設置する
  2. オブジェクトにスクリプトをアタッチ
  3. スクリプトの中身を書く
  4. 実行する

2Dでやっていますが、3Dでももちろんできるので安心してください。またオブジェクトに立方体(正方形)を使っていますが、なんでも構いません。

オブジェクトを設置する

Input.GetMouseButtonDownの説明

●オブジェクトを設置する

【Hierarchyウィンドウ】→【Create】→【3D Object】→【Cube】

 

オブジェクトにスクリプトをアタッチ

Input.GetMouseButtonDownの説明

●スクリプト作成

【Cube選択】→【Inspector】→【Add Component】→【New Script】→【Test】

スクリプト名はテストにしておきますね。なんでもよろし。アタッチしなければ使えません。

 

スクリプトの中身を書く

Test.cs

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;

一生移動し続けてもしょうがないので、減速させています。

 

実行する

Input.GetMouseButtonDownの説明

X軸方向に動いていますね。

ちなみに

Test.cs

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;
    }
}

このようにすると

Input.GetMouseButtonDownの説明

x軸方向にもY軸方向にも行くよ。

まとめ

Input.GetMouseButtonDownマウスをクリックした瞬間にtrueを返す
Input.GetMouseButtonDown(0)左クリックした瞬間にtrueを返す
Input.GetMouseButtonDown(1)右クリックした瞬間にtrueを返す
Input.GetMouseButtonDown(2)中ボタンクリックした瞬間にtrueを返す

当然、2Dでも使えます。

あれっ、Input.GetMouseButtonDownの説明より、移動させる方法の記事になってる!!!

ちょっとぶれましたねぇ。

とりあえずマウスをクリックして、なにかの処理を行うように設定できることはわかっていただけたと思います。

自分で応用して使ってみてくださいね。

あともしUnityでのサンプルゲームをお探しなら、【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろうでゲームを作ってみてくださいね。

Unityサンプルゲーム
【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろう【チュートリアル】【Unity2D&3Dサンプルゲーム・チュートリアル】Unityにおいてのサンプルゲームの作り方が書いてある記事って少ないですよね。そこで当サイトUnishar(ユニシャー)が動画よりわかりやすいサンプルゲームを無料で提供します。...

以上さぎのみや(@saginomiya8)でした。明日からも一生無双でやったりましょう。

ABOUT ME
さぎのみや
さぎのみや
超書手。現在はUnityメディア「ユニシャー」の運営とゲーム開発がメインです。Unity、ライティング関係のお仕事お待ちしております。 >>詳しいプロフィール >>Amazonほしいものリスト
【Unity3D】新しいサンプルゲーム(チュートリアル)を作りました!!!
Unity有料サンプルゲーム

「Unityで3Dゲームを本格的に作っていきたい!」という人におすすめのチュートリアルとなっています。

画像のようなゲームの作り方を販売しています。色々と応用できるサンプルゲームとなっています。ぜひ、作ってみてください。

詳細
>>【Unity3Dサンプルゲーム・チュートリアル】「フリスビーを犬に届けよ!」の概要

>>BOOTHでこのチュートリアルを見る

【RT・フォローであなたのスキルが上がる】

シェアフォローする

さぎのみやのモチベが上がる

コンテンツの質が上がる

あなたの能力も上がる

あなたの
Twitterでのシェア

であなたの能力が上がります。

>>さぎのみやのツイッター(@saginomiya8)

 

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください