unity

unityで矢印キーでオブジェクトを移動させるには(3d)

投稿日:

Pocket

うも、チャーさんです。

あなたはunityで矢印キーで3dオブジェクトを

移動させたいですか?

 

この記事では矢印キーによる3dオブジェクトの

移動を実現する方法を書いてるので、

読めば矢印キーで移動させれますよ。

 

なのでunityで矢印キーで移動させたい(3d

で)と思っているのならば、このまま

読んでみてください。

 

スポンサードサーチ

unityで矢印キーで移動させるには

 

でまず結論ですが、

 

unityでキー入力で移動させたいなら、

 

if文と

Input.GetKeyDown 関数と、

transform.positionで移動させれます。

 

 

なぜなら、

 

Input.GetKeyDownはキー入力

transform.positionは位置情報に関することを変更可能

だからです。

 

とはいえこれだけだとピンときづらいので

実際のコードをみてください。

 

 

ちなみにコードに関しては以下をコピペすれば矢印キー

で移動させれます。

 

    void Update () {
        
            if (Input.GetKeyDown (KeyCode.UpArrow)) {
                transform.position = transform.position + new Vector3 (0, 0, 1);
            }

            if (Input.GetKeyDown (KeyCode.DownArrow)) {
                transform.position = transform.position + new Vector3 (0, 0, 1);
            }

            if (Input.GetKeyDown (KeyCode.RightArrow)) {
                transform.position = transform.position + new Vector3 (1, 0, 0);
            }

            if (Input.GetKeyDown (KeyCode.LeftArrow)) {
                transform.position = transform.position + new Vector3 (1, 0, 0);
            }
        }
 

でコードとともに説明ですが、

 

矢印キー入力を受け付ける部分

 

まずこのif文の部分ですが、

 if (Input.GetKeyDown (KeyCode.UpArrow)) {
               
            }

 

これは、もしもキーボードの矢印キーの上が押されたら、

という意味になります。

 

 

これだけだと何なので少しコードを分解して

説明すると、

 

Input.GetKeyDown ←ボタンが押されたらという意味

(KeyCode.UpArrow)) ←押されたキーが矢印キーの上だったら

Upは上、Arrowは矢印という意味

 

になりまして、

 if (Input.GetKeyDown (KeyCode.UpArrow)) {
               
            }

 

はもしキーボードの上矢印キーが押されたら、

{}内のコードを実行になるわけです。

 

 

なのであとは、この{}内に移動させるための

記述をしたら矢印キーで移動してくれます。

 

矢印キー上下左右の記述

 

ちなみに、KeyCodeの矢印キーはわかりやすくて、

 

UpArrow 上 ↑

RightArrow 右 →

DownArrow 下 ↓

LeftArrow 左 ←

 

でそれぞれキーボードの矢印キーの判別ができます。

 

移動させる記述

 

で、ここからはif文の{}の中の内容ですが、

 transform.position = transform.position + new Vector3 (0, 0, 1);

 

で3dオブジェクトを移動させる記述になります。

 

ということで例によって分解して説明します。

 

 

まず、

 

transform.position = transform.position + new Vector3 (0, 0, 1);

の記述の、

 

transform.position = というのは、

このオブジェクトを表示させる位置は、

という意味になります。

 

 

で、=transform.position + new Vector3 (0, 0, 1);

は現在位置(現在の座標)+  x :0 y:0 z:1を足す、

という意味になりまして、

 

つまりこの記述では、

z軸上に1だけ移動するという意味になるのです。

 

 

transform.positionの意味

 

transfrom.positionに関して、

補足説明しますと、

 

もともとtransform.positionというのは、

unityではオブジェクトの位置情報のことを意味してまして、

そのオブジェクトが表示してある座標を意味してます。

 

つまりオブジェクトの現在位置情報(=座標)。

 

 

ちなみに例を出すとオブジェクトの座標というのは、

オブジェクトのInspector画面の

 

Transformコンポーネントのposition

の部分に表示してありまして、

 

例えば僕が今スクショとったこのcubeの

だと、

 

unity transform.position位置情報

 

X 4.13 、Y 0.81 、Z 2.77

の位置(座標)にオブジェクトがあるという意味になるわけです。

 

なのでtransform.positionっていうのは

オブジェクトの現在位置(座標)って意味があるのです。

 

 

で、記述説明に戻りますが、

transform.position = transform.position + new Vector3 (0, 0, 1);

 

というのは、オブジェクトの位置は、

オブジェクトの現在位置+ (0, 0, 1)の場所という意味になりまして、

z軸上に1だけ進むということになるわけです。

 

つまりオブジェクトが移動するわけです。

 

 

ちょいとわかりづらかったかもしれませんが、

要はこの記述で、オブジェクトが移動するというわけです。

 

矢印キーで移動の記述

 

で、これをまとめると、

   if (Input.GetKeyDown (KeyCode.UpArrow)) {
                transform.position = transform.position + new Vector3 (0, 0, 1);
            }

という記述を日本語に直すと、

 

もし矢印キーの上が押されたら、

オブジェクトの位置を、z軸方向に+1移動させる。

 

という意味になるのです。

 

 

つまり矢印キーを押すと移動するという

記述になるのです。

 

で、あとは、それぞれ上下左右ように

+、 – を変えて、座標を足したり引いたりすれば、

オブジェクトを好きな場所に移動させれる、

 

というわけです。

 

スポンサードサーチ

矢印キーで移動までの手順

 

とは言え、まずは記述書いてみて

動かしてみたほうがつかめると思うので、

方法を説明します。

 

まずはオブジェクトを用意して、

スクリプトコンポーネントをつけて、

以下の記述を書きましょう。

 

  void Update () {
        
            if (Input.GetKeyDown (KeyCode.UpArrow)) {
                transform.position = transform.position + new Vector3 (0, 0, 1);
            }

            if (Input.GetKeyDown (KeyCode.DownArrow)) {
                transform.position = transform.position + new Vector3 (0, 0, 1);
            }

            if (Input.GetKeyDown (KeyCode.RightArrow)) {
                transform.position = transform.position + new Vector3 (1, 0, 0);
            }

            if (Input.GetKeyDown (KeyCode.LeftArrow)) {
                transform.position = transform.position + new Vector3 (1, 0, 0);
            }
        }

 

であとは実行して、

キーボードの上下左右の矢印キーを

押してみてください。

 

移動します。

 

 

スポンサードサーチ

まとめ

 

ということでまとめに入ります。

 

unityで矢印キーで移動させたいなら、

 

if文と

Input.GetKeyDown 関数と、

transform.positionで移動させれます。

 

ということなので、実際にやってみてください。

 

 

それでは読んでもらってありがとうございました。

 

でわ。

 

チャーさん

-unity

==========

Unity用の3Dモデルを探してる方、欲しい方ご注目!

自作のUnity用3Dモデルを販売(基本的に無料版あり)してますので、
以下のリンクより一度ご覧ください。

Unity用3Dモデルを見てみる

==========


スポンサードサーチ

関連記事

no image

unityでオブジェクトをスクリプトで削除する方法

どうも、チャーさんです。   あなたはunityでゲームオブジェクトを、 スクリプトなどから削除したいですか?   この記事では、関数を使い、 ゲームオブジェクトを削除する方法を書 …

no image

blenderで作ったモデルをunityにインポートする方法「簡単です」

どうも、チャーさんです。   あなたはblenderで作ったものを、 unityで表示(インポート)したいと、 思っていませんか?   この記事では、あなたが作ったblenderの …

no image

unityで弾の発射位置をコントロールする方法

どうも、大石です。 あなたはunityで弾の発射位置を自由に コントロールしたいですか?   この記事を読めばあなたの好きな位置から 弾を発射できるようになりますよ。   スポンサ …

no image

unityでキー入力で攻撃する方法(3分以内にできます)

どうも、チャーさんです。   あなたはunityでキー入力による攻撃を したいですか?   この記事ではunityでキー入力で攻撃を する方法を書いてますので、あなたがこれを読めば …

no image

[unity]foreach内でget componentを使う方法

どうも、チャーさんです。   この記事ではunityのforeachループで get componentする方法を書きます。     なのでこの記事を読めば、 &nbsp …

no image

unityで敵を索敵する方法

どうも、大石です。   あなたはunityでプレイヤーが敵を索敵する 機能をつけたいですか?   この記事を読めば、敵を索敵する 機能を簡単に作れますよ。   ということ …

no image

unityでoculus questの開発をしたい方必見!手順まとめました

どうも、チャーさんです。   あなたはunityでoculus questの 開発をしたい、そう思ってませんか?     この記事ではunityでoculus quest …

no image

unityでコンポーネントを取得する方法を詳しく解説

どうも、チャーさんです。 あなたはunityでコンポーネントを取得する方法を 探していますか?   この記事ではコンポーネントを取得する方法、 その際の変数宣言の書き方や、 コンポーネント名 …

no image

unity上でblender作成モデルが透ける時の解決法

どうも、チャーさんです。   あなたはunityにblenderで作ったモデルを 持ってきたものの、面が透ける現象が起こって 困っていませんか?     この記事は、透け …

no image

unityでボタンクリックで他のオブジェクトの色を変更するスクリプト

どうも大石です。   あなたはunityでボタンをクリックしたら、 他のオブジェクトの色を変更するという スクリプトを書きたいですか?     この記事を読めば、あなたは …

no image

unityで弾の発射の向きを敵に向ける方法(自動)

どうも大石です。   あなたはunityで弾を発射するときの向き をコントロールしたいと思っていませんか?   この記事を読めば、あなたはunityで 弾を敵に向かって発射させれる …

no image

unityでカメラを追従させる簡単なコードと方法の説明をする記事

  どうも、チャーさんです。   あなたはunityでカメラの追従をさせたい、 こう思ってませんか?   この記事ではオブジェクトをカメラで追従させる、 (カメラが追いか …

no image

unityで敵を移動させる方法(詳細にわかりやすく説明します)

どうも、チャーさんです。   あなたはunityで敵を移動させたい、 そう思っていませんか?   コライダーなどでもできるが、他の方法が ないかと探してませんか?   & …

no image

unityでprefabを複製する(スクリプトで)方法

どうも、大石です。 あなたはunityでprefabをスクリプトで複製 したいですか?   この記事を読めば、あなたはprefabをスクリプトで 複製できるようになります。   な …

no image

unityでオブジェクトを回転させる方法「1分でできます」

どうも、チャーさんです。   あなたはunityでオブジェクトを回転させたいですか?   unityでゲームなど作るとオブジェクトを 回転させたい場面がありますよね。   …

最新記事

チャーさん

プログラミング・筋トレ・unity系の記事などを書いてます。

大学卒業後→開業→個人事業主7年目ぐらいです。webサイト制作したり、unityでゲーム開発しております。

youtubeもやってまして、主にプログラミング動画とかunity系の動画をあげてるので見てください。