Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!

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

スポンサードサーチ

関連記事

no image

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

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

no image

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

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

no image

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

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

no image

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

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

no image

unityで他のオブジェクトを取得する方法

どうもチャーさんです。   あなたはunityで他のオブジェクトを 取得したいがわからず困ってますか?   この記事では、unityで他のオブジェクトを 取得する方法を書いてます。 …

no image

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

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

no image

unityで攻撃に当たり判定をつける方法

どうも、チャーさんです。 あなたはunityで攻撃に当たり判定をつけたいですか?   この記事では、当たり判定をつける 方法を書いてるので、読めば当たり判定をつけれます。   とい …

no image

unityで敵に近づくと追いかけてくるコードとコードの解説記事

どうも、チャーさんです。   あなたはunityで敵に近づくと、 プレイヤーを追いかけてくるという機能を つけたいと思っていませんか?   この記事ではそれを実現するコードと方法や …

no image

unityアセットの使い方を初心者でもわかるように説明。

  どうも、チャーさんです。   あなたはunityのアセットの使い方が、 わからず困ってませんか?   この記事ではunityのアセットの使い方を、 1から説明してます …

no image

unityで地形を作る方法「初心者でもできるように丁寧に説明してます」

どうも、チャーさんです。   あなたはunityでいい感じの地形を作りたい。 でも、やり方がわからない。と悩んでいませんか?   この記事では、unityで地形を作る方法を、 ステ …

no image

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

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

no image

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

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

no image

unityでのダンジョンの簡単な作り方(コードコピペで作れます)

どうも、チャーさんです。   あなたは、unityでダンジョンを作りたいと 思っていませんか?   この記事ではunityでのダンジョンの作り方を 説明してまして、本記事を読めば …

no image

Unityでオブジェクトに重力を1分以内につける方法

  どうも、チャーさん(@chaa___san)です。   あなたはUnityでオブジェクトに重力をつけたいですか?   この記事ではUnityでオブジェクトに、 重力を …

no image

unityでオブジェクトを移動させたい人は読んでください。

どうも、チャーさんです。   あなたはunityでオブジェクトや、 プレイヤーなど自由自在に移動させたい、 そう思っていませんか?     キーボードの上下左右の矢印ボタ …

最新記事

チャーさん

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

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

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