すぐに固まるパソコンを使う。

すぐに固まるパソコンを使って色々します(実はそんなすぐでもない)。基本的にプログラミング系が多いです。たまに違うことします。

Immediately Freeze!

重くなるUnityを使う 24 「Shall we Move? - 引きずる2」

今回から見出しをつけます。(付けた方が見やすいですから)

 

今度は紙飛行機を引きずりましょう。

 

それにはキャラクターコントローラーを使います。

ただ、Unityのキャラクターコントローラーはマニュアルでも使わないほうがいい(?)とあるので、Scriptを作って制御します。

Scriptで紙飛行機を操作する(仮)

Script名はKamiplaControllなどにして(もちろんScriptファイル内で)、一応こんな感じにします。

gist.github.com

解説

 実はいろいろおかしいですがそれはこれから直すとして(一応自分で考えてやっているんで)説明します。

まずフィールドとしてspeed,rotationspeed,jumpheightを作ります。これはInspectorでもいじれます。そしていじれないフィールドonGround,defspeedを作ります。

Start()内ではLogにコントロールを開始することを言っています。nameでObject名を呼べます。

コメントにしていますがCharactorControllerを使えます。今回は使っていません。

 

Update()内では独自メソッドを呼び出しています。Updateでは1フレームごとに呼び出せるので動く処理が出来ます。

 

startJump()はジャンプの処理をします。中ではonGroundtrueかどうかとInputでスペースキーを押したかどうかをif#にしています。onGroundboolと言うのは演算子でも使う形で、それがかを決めます。つまり、「それが当てはまる」か「当てはまらない」かということです。truefalseで表します。実はInput.GetKey(KeyCode)もbool値なんです。キーが押されたかtruefalseで表しています。ちなみに演算子オペレータ(Operator)、代入される方(被演算子)はオペランド(Operand)とか言います。

またif#内には&&というのが有ります。これも演算子、特に条件演算子と言います。もともと&というのがANDと言い、「A & B」で「AとBを含む」という意味を持っています。((もっとわかりづらく言うとAの中のビット(2進数で表される言葉の表し方?かな)とBの中のビットを合わせて桁ごとに1があるかを確認してそれを合わせること

例:11 (bit : 0001011) & 21 (bit : 0010101) = 31 (bit : 0011111)))そして、&&と言うのは「A && B」で「AかつB」という意味です。((例:11 && 21 = 1 (bit : 0000001)))つまり、「Spaceキーを押していて、かつonGroundtrueの時」ということです。ここで注意したいのは、if#の中でオペランドは、同じ形でなければいけないということです。(じゃないとエラーを出します)例えば、if (float aaa && bool isAAA);はエラーになります。また、if (float aaa && int bbb);もエラーになります。しかしキャストというのを使えば直ります。(キャストは今度説明します)

 

一旦これで終わりにします。また次回の記事で。(ほぼ見出しの意味なし & 後半めっちゃ赤い = ダメな記事 とかになる(&))