unity オブジェクト

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

投稿日:2019年5月8日 更新日:

Pocket

うも、チャーさんです。

 

あなたはunityでオブジェクトや、

プレイヤーなど自由自在に移動させたい、

そう思っていませんか?

 

 

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

押した時にオブジェクトが動いて、

ゲームのように動かしたい。

 

そう思っていませんか?

 

 

この記事では、自由にunityでオブジェクトを、

移動させれるようになる方法を書いてます。

 

なので、あなたがこの記事を読めば、

unityで自由にキーボードの操作で、

オブジェクトやプレイヤー等を移動させれます。

 

なので、unityで自由自在に移動させれるようにしたい、

そう思っている場合は、このまま下にスクロールして、

読んでみてください。

 

スポンサードサーチ

unityで移動の操作ができるようになる方法

 

で、まず結論からですが、

以下のコードを自由自在に動かしたい、

オブジェクトのスクリプトに書けばOKです。

 

以下を書けば、キーボードの上下左右、

↑↓→←を押した時に前後左右にオブジェクトが、

動きます。

 

(ちなみに言語はC#です。)

 

 

void Update () {
        if (Input.GetKey(up))
        {
            transform.Translate(Vector3.forward);
        }

        if (Input.GetKey(left))
        {
            transform.Translate(Vector3.left);
        }

        if (Input.GetKey(right))
        {
            transform.Translate(Vector3.right);
        }

        if (Input.GetKey(down))
        {
            transform.Translate(Vector3.back);
        }

}

 

void Updateの中括弧内に、

上記の中括弧内のコードを書けばOKです。

 

 

スポンサードサーチ

unityで移動させるためのコードの説明

 

で、ここからはコードの翻訳と、

説明をします。

 

というのもこれを知ればあなたは、あなた自身で、

好きなキーでオブジェクトを好きな方向に移動させれる

ようなコードを作れるようになるので、知っておくと良いでしょう。

 

ではコードの説明をしておきます。

 

 

コード全体の説明

 

まずはコードの全体部分から説明します。

 

 if (Input.GetKey(up))
        {
            transform.Translate(Vector3.forward);
        }

 

で、説明に入るために早速コードに書いてある、

コードを一部抜き出しましたが、これは翻訳すると、

 

キーボードの上下左右の上(up)が押されてる間、

中括弧内のtransform.と書かれてる内容を実行して欲しい。

という文になります。

 

 

という訳で、このコードを書いておけば、

キーボードの上が押された時に、前に進んでくれる。

という動きをしてくれます。

 

 

ではもうちょい細かく部分ごとに説明します。

 

 

if (Input.GetKey(“up”))の意味は?

 

 if (Input.GetKey(up))の部分の

input.GetKey(“”)ですが、これは(“”)内のキーが押されてる間、

という意味になります。

 

で今回記事に書いてるこの(“up”)というのがキーボードでいう、

上にあたります。(キーボードにある上矢印↑のやつですね)

 

なのでキーボードの上↑を押してる間、

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

 

 

ちなみに別例ですがInput.GetKey(“z”)と書いてたら、

キーボードのzを押してる間、という風にできる訳です。

 

 

transform.Translate(Vector3.forward);の部分の意味は?

 

で、次に、

 if (Input.GetKey(up))
        {
            transform.Translate(Vector3.forward);
        }

 

transform.Translate(Vector3.forward);の部分です。

 

 

transform.Translateとは?

 

このtransform.Translateというのは、

オブジェクトの表示位置を変更するという意味の文です。

 

表示位置とかいうと、わかりにくいので、

要はオブジェクトを移動させれる命令だと思えばいいです。

 

 

(Vector3.forward)とは?

 

また、transform.Translate(Vector3.forward);

(Vector3.forward)ですが、

これはz方向に1移動するという意味の文です。

 

forwardというのは、3dベクトルでいう(0,0,1)のことでして、

forwardと書いておけば、z方向にオブジェクトが、

移動してくれるというわけです。

 

 

unityでオブジェクトをクリックすると、

緑と青と赤の矢印が出てるのをみたことがあると、

思いますが、あれでいう青色の矢印の方向のことです。

 

なので、上記を書けば、

z方向に向かってオブジェクトが動いてくれる、

前進してくれると理解しておけばいいです。

 

 

全部のコードを組み合わせると

 

でinput.GetKey(“キー”)と合わせると、

キーが押されてる間、z方向に移動する。

という命令になるわけです。

 

さてコードをそれぞれ部分ごとに、

少し説明をしましたが、上記のような意味がある、

コードたちを組み合わせると、以下のようになりまして、

 

 

if (Input.GetKey(up))
        {
            transform.Translate(Vector3.forward);
        }

 

と書けば、キーボードの上↑を押してる間、

オブジェクトが前に動いてくれるわけです。

 

 

で上記で紹介したコードでは、

これを前後左右全てに指定してあるので、

これを書けば、前後左右に移動してくれるようになるのです。

 

void Update () {
        if (Input.GetKey(up))
        {
            transform.Translate(Vector3.forward);
        }

        if (Input.GetKey(left))
        {
            transform.Translate(Vector3.left);
        }

        if (Input.GetKey(right))
        {
            transform.Translate(Vector3.right);
        }

        if (Input.GetKey(down))
        {
            transform.Translate(Vector3.back);
        }

}

 

補足ですが、

それぞれキーボードでいうと

 

leftは左←

rightは右→

downは下↓

 

になります。

 

 

また、

 

上記のコードのupや、forwardにあたる部分を書き換えれば、

それぞれ、意図したキーを押した時に、

あなたが思った方向に動かすことができます。

 

ということで、このコードをつけると、

以下の具体例用にとった動画のように、

自由に前後左右動けるようになります。

 

 

 

このように自由にオブジェクトを移動させれる訳です。

(今回上記のコードを書いたスクリプトは、

main cameraのオブジェクトに貼り付けてます)

 

 

スポンサードサーチ

unityで移動させるまでの手順を紹介

 

で、ここからは、unityでオブジェクトを、

移動させるまでの手順を説明します。

 

 

unityを立ち上げる

 

まずはunityは立ち上げてると思いますので、

そこはスキップします。

 

移動させたいオブジェクトを決める

 

で、次は、自由に移動させたいオブジェクトを、

決めましょう。

 

例としては、何かキャラクターや、

プレイヤーを作っていて、それを動かしたい場合は、

それを選ぶ感じです。

 

 

またもしも何も思いつかない場合理由は後述しますが、最初は

カメラ(Main Camera)を選ぶのがわかりやすいので、

特に好みがなければカメラを動かしてみましょう。

 

 

選んだオブジェクトにスクリプトをつけましょう

 

で、次に動かしたいオブジェクトを決めたら、

そのオブジェクトにスクリプトをつけましょう。

 

スクリプトをつけるには、

Hierarchyにある動かしたいオブジェクトを、

クリックします。

 

 

そしてそのあとにInspectorビューの下にある、

Add Componentをクリックしましょう。

 

 

するとウィンドウが出るので、

下にスクロールすると、

New Scriptという項目があるのでそこをクリックしましょう。

 

 

すると名前を付けれるので、

スクリプトに適当に名前をつけ、

create and addをクリックしましょう。

 

 

そしたらInspectorビューの下の方に、

新しく作ったスクリプトが追加されます。

 

 

スクリプトに、コード書きましょう

 

で、次は、Inspectorビューに表示された、

スクリプトの名前の上でダブルクリックしましょう。

 

するとその後は、

テキストエディター(コードを書いたりするためのソフト)

が立ち上がりますので、

 

そこに上記で紹介したコードを書きましょう。

 

 

パソコンによって立ち上がるエディターに違いがあります。

(Macだと初期はMono Developというやつです)

(windowsだとVisual studioというのが出ます)

 

 

unityで再生してテストする

 

でエディター上でコード書いたら保存して、

unityの画面に戻り、

画面上部にある再生ボタンをクリックしましょう。

 

そこでキーボードの上下左右キーを押して、

移動するか検証しましょう。

 

そこでちゃんとオブジェクトが動いてたらOKです。

 

 

スポンサードサーチ

余談:最初にカメラを移動させるオブジェクトとして選ぶといい理由

 

ここで一応TIpsとして。

 

最初はカメラにスクリプトをつけて、

コードを書くのが一番わかりやすいです。

 

というのもオブジェクトに書くとカメラの角度によっては、

オブジェクトがgameビューに写ってなかったりするので、

移動がわかりづらいです。

 

 

ですが、カメラにつけとくと、

gameビューの視点はカメラなので、

移動が確認しやすいです。

 

ということで最初はカメラにスクリプトをつけて、

コードを書くことをやってみると良いでしょう。

 

 

スポンサードサーチ

余談2:移動させるためのコード色々あって迷う場合

 

また、unityでオブジェクトを自由に移動させるための、

コードは色々あります。

 

なので、移動させるためのコードでも、

色んなコードがあって戸惑うかもしれません。

 

ですが、先ほどお伝えした通り、

移動させるためのコードとは色々考えれます。

 

 

なので、あまり戸惑わず、

あなたがオブジェクトにさせたい移動に、

もっとも適したコードを選ぶ視点を持てば迷わないでしょう。

 

 

まとめ

 

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

 

unityでオブジェクトを自由自在に移動させたいなら、

以下のコードを、あなたが自由に動かしたいオブジェクトの、

スクリプトに書きましょう。

 

 

void Update () {
        if (Input.GetKey(up))
        {
            transform.Translate(Vector3.forward);
        }

        if (Input.GetKey(left))
        {
            transform.Translate(Vector3.left);
        }

        if (Input.GetKey(right))
        {
            transform.Translate(Vector3.right);
        }

        if (Input.GetKey(down))
        {
            transform.Translate(Vector3.back);
        }

}

 

そうすれば、unityでオブジェクトを、

キーボードで自由に移動させることができるようになります。

 

なのでプレイヤーの移動や、

ゲームのようにできるでしょう。

 

 

それでは、まずは早速移動できるようにしたい、

オブジェクトを決め、スクリプトをつけるところから、

始めましょう。

 

そうすればあなたもunityで自由自在に、

オブジェクトを移動させ楽しめるようになりますよ。

 

 

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

 

チャーさん

 

 

 

 

-unity, オブジェクト

==========

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

自作のUnity用3Dモデルをリーズナブルな価格で販売してますので、以下のリンクより一度ご覧ください。

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

==========


スポンサードサーチ

関連記事

no image

unityで敵を索敵する方法

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

no image

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

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

no image

unityで動く床にのるとオブジェクトが滑る場合の解決法

どうも、大石です。   unityで動く床を作ったのに オブジェクトが上に乗ると滑って 一緒に付いて行かずに落ちる、、   みたいなことで悩んでますか?     …

no image

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

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

no image

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

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

no image

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

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

no image

unityでオブジェクトの色をスクリプトから変更する方法

どうも大石です。   この記事ではunityでオブジェクトの色を スクリプトから変更する方法を書いてますので、   この記事を読めばあなたはスクリプトから オブジェクトの色を変更で …

no image

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

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

no image

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

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

no image

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

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

no image

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

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

no image

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

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

no image

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

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

no image

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

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

no image

unityでターン制のゲームを作るにはコレを使いましょう

どうも、チャーさんです。 あなたはunityでターン制ゲームを作りたい そう思っていませんか?   この記事ではunityでターン制のゲームを 作る方法を書いています。   なので …

最新記事

チャーさん

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

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

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