第6話 プログラムでを物を動かす

Unity

今回は何するの?

今回は、プログラムを使って矢印キーでものを動かすぞ。
物を動かすのも意外と簡単。
基本がいくつかわかればすぐできるぞ!

まずはわかっておくべきことを話していこう。

じゃあ始めよう!

わかっておくべきこと

わかっておくべきことといってもそこまで多くありません。
Transformのことをちょっと書くだけです。

Transformってなんだよ。
それは簡単。
そのオブジェクトの 位置、回転、サイズ の三つです。

上から。
Position 位置
Rotation 回転
Scale サイズ
となっています。
まぁふつうに英語ですね。

よかった。まだわかりやすいな。

このTransformを含めた単語は何度か出てくるので覚えておこう。

プログラムを組んでいくぞー

じゃあ適当に箱を出してアタッチしてC#作って開こう。

 

こんな感じで書きましょう。
一番上の行は人によってちょっとだけ違うから気を付けてね!

これで起動してみよう!

右に動いていきましたよね!
説明していきましょう。

まず最初に書いた部分。
float speed = 1f;
これは箱の動くスピードを決める部分。
正確には箱のスピードに子の変数を使うんだけど。

そしてUpdateの中。
transform.position
これはアタッチしたもののtransformのpositionのこと。
位置の情報だね。

そして+=でこの後のものを代入する。
new Vector3は自分でもよくわからない!
でもUnityさん公式によると、

3D ベクトルと位置の表現

ということらしい。
よくわからなくても今は無視!
まだ一切問題はない!必要ということだけ覚えとこう。

そのあとの()の中身は、左からpositionの
X座標 Y座標 Z座標
となっている。

単純だね。座標は位置を表すものだよ。

だから、X座標にプラスの方向に進むプログラムなんだね。

…speedはさっき作ったけどTime.deltatimeってなんやねん。
って人に朗報です!PCでゲームをそこそこしてるならすぐわかりますよ!
やってなくてもすぐわかります!

フレームレート、fps、
わかりますか?1秒間に何枚描写されてるかという値です。

そもそもパソコンはパラパラ漫画のように描写されているんです。
たくさんの静止画を連続で見せることにより、動いているように見えるわけです。

そしてUpdate。毎フレーム実行する内容ですよね。
勘のいいひとは気づいたでしょう。
30フレームと60フレームで2倍速度に差が生まれる!
…わかりますか?
これに関してはフレームレートでググれば出てきます。
わからなければ軽く検索してみましょう

まぁ単純に、60フレームだと30フレームの2倍の速度になっちゃう。
だからTime.deltatime。

これは今のフレームレート分の1の値が入り続けます。
1×30分の1×30
1×60分の1×60

計算してみるとどちらも1ですよね!
こんな感じのことを勝手にやってくれます。

まぁかけておけば全部のパソコンで同じ速度で動く…
みたいな感覚で覚えておけばまぁOKです。

それではここで問題です!デデン

箱が上に動くようにプログラムを組みましょう!
ちなみに上はY座標にプラスですよ。

正解は…

こうでした!書けたかな?
Updateの中を書き直すだけでOKだったよ。

下に動かすときは、speedの前に-を付ければOK!

ボタンで動かす

よし。ひとまず動いたぞ!
次はボタンを押すと動くようにしよう!
WASDか矢印キーで悩んだけど今回は矢印キーでいこう。

プログラムを書き直すぞ!

 

こう書きましょう。
まだなんて書いてあるかわからないと思いますが…
説明していくと、if文のお話になります。

これに関してはめっちゃ使うので次の記事で書くかな?
まぁサクッと書いとくと何がされたときに何をするというものです。
今回は上矢印が押されたときに上に動かすとなっています。

if(条件){何をするか}

となっています。

で、あとはかんたん。さっきと同じだよ!やったね!
これなら続きは書けるかな?

というわけで、問題!

上、下、右、左に動けるようにしよう!
up down right leftだったかな?向きは。(英語苦手)

さぁ書けるかな?
if文をたくさん作るだけです。

というわけで、答えは…

こうでした!書けましたか?
スピードが遅い?なら最初のspeed変数を変えましょう。
それだけで一応簡単にできます。

しかし、プログラムをいじるのがめんどくさい人。
float speedをpublic float speedにしましょう。

そしてCubeの中のプログラムの中。
speedというところが追加されています。

ここの数字を変えてもプログラムは変わりません。
しかし、変数はこちらの数字を優先して使うようになります。
テストのときとかめっちゃ使えそうですね!

これで数字を書き換えまくりましょう!

終わりに

これで物を動かせた。
基本中の基本。

なんだかんだでこの後も使うだろうね。

プログラムをいじってめっちゃ遅くしたり早くしたり…
できるのでやってみても面白そう。

それでは!

スポンサーリンク
Unity
面白かったらシェアしてね!
choppiをフォローする


晴れときどきゲーム

コメント