日々是unity#3

前回はRubyちゃんにHPの概念を与えて、それを増やすオブジェクトを作った。
今日は日曜。
いつもよりは長く触れそうだ。

この記事は初心者が練習問題を解く過程を書いたものです。
復習がてら書いているので、その時思ったことなどをそのまま載せています。

Rubyちゃんにダメージを与えるオブジェクトとしてタケノコを召喚する。
タケノコにDamageZoneScriptをアタッチさせて、みよう見まねでscriptを書いていく。
ようやくなんて書いてるかわかるようにはなってきたが…

if (controller != null)

この!=には苦戦しそうだ。
左右を比較してイコールじゃなかったらtureのイメージでいいのだろうか。
こういう回路をマイクラのレッドストーン回路で習った気がするが、忘れてしまった。

再生すると、高速でHPが削られるRubyちゃん。
なんかゲームのバグを見てるようで面白い。
この挙動を直すために無敵時間を作っていく。
floatとかintとか、いっきに文字列が増えたが、一応一つひとつにコメントを打ち込み理解して先に進むようにする。
ここら辺から、読み込みに時間がかかるようになり、1ステップにすごく時間がかかるようになってしまった。

なんて書いてあるか理解するまでに、すごく時間がかかってしまった文

changeHealthにも新しく無敵時間によるコードが追加されたことにより、ちょっと複雑になってしまった。
しかし、前回悩んでたamountは敵、もしくは回復アイテムによるHPの増減値として理解できた。


次に敵の設定。
この敵がなかなかにかっこいい。

どことなくスチームパンクっぽさがある敵兵だ。
スチームはどこにもないわけだが。
この敵にもrigidbodyをつけscritpを書いていく。
タイマーを使うことによりうろうろ動き回る敵兵の完成だ。
このタイマーがまだ理解しきれてないので、この後また見直すつもりだ

敵の動きを設定できたら、次はanimatorで動きを設定していく。
一応過去に、シューティングを練習で作った時にもやったはずなのだが、全く覚えてない。というかむしろなんだこれ状態である。

サンプルで入っているスプライトを、アニメータに入れて書いてある通りに設定し、その後声に出しながら反復する
こうでもしないと頭に入ってこないのだ。
今までscriptで、頭の中がコードだらけのコードの森にいたのに、急にポツンと砂漠に投げ出された感覚。
急に今まで違う、頭の使い方を要求されてもスイッチが入るのが遅いので、ここでもスロースピードで理解を深めていく。

だが、このブレンドツリーというのはなかなかに便利そうだ。
これにより、一つの大きな塊でStayやMoveといった管理ができるわけだな。

そして最後にアニメーションをscriptで読み込みキャラクターに反映させる作業。
コードを書く作業なので、少し安心したが

||←これ

AAでしか使われなさそうな文字が出てきた。
なんて読むのか、どう打ち込むのか全く分からず、秒でGoogle先生に聞いてみたところ、パイプとか双柱とかバーと読むそうな。
出しかたはShift+¥
日常で使ったことなかったので、検索かけないと出し方がわからなかった。
あとApproximately。
これは、"大体"とか"約"とかいう意味である。読み方はアプロクシマトリー。

f(!Mathf.Approximately(move.x, 0.0f) || !Mathf.Approximately(move.y, 0.0f))

つまりこれは、「move.xかmove.yが大体0.0fだったら」という意味だろう。
本日のunitylearnは以上である。


unity初心者が作るべきゲーム5選!的な動画を見ていた。
ざっくりと

  • ブロック崩し

  • シューティング

  • 2D横スクロールアクション

  • 脱出ゲーム

  • タップするだけのゲーム

であるらしい。
鵜呑みにするつもりはないが、先輩の言っている言葉だ、真摯に受け止め、練習にこういったゲームを作るのも楽しそうだ。
そして最終的には、unityを触るきっかけになったダイスフォージのようなゲームを作れるようになればよい。
まずは、スクリプトの書き方やオブジェクトの作り方に慣れるべきなのである。
Rubyちゃんが終わっていざ作るぞ!となったとしても、newprojectを作った瞬間にフリーズするのが目に見えている。

この記事が気に入ったらサポートをしてみませんか?