Unityのチュートリアルゲームからプログラムの上手い書き方を学ぶ
どうもこんにちは。前回の投稿から2週間ぶりで済みました。
下書きから手を付けずにいたら前回の投稿から100日以上経ってました、ひえ〜…。
---
今回は、Unityでゲームプログラムを書く時の方針についてまとめようと思います。
最近、自主制作でゲームのプログラミングを書いているのですが、
最初の方はいいんです。
「とりあえずこの物体置いておこう」「こいつにこの挙動付けたいからスクリプト貼り付けて機能付けよう」「動いたやん」「やったぜ」
という具合です。
しかし、内容が複雑化してくるとそうはいきません。
「こいつの動きを付けるためにあっちのオグジェクトの値を取ってきて…またGetComponentか…」「まとめて消したいけど位置がバラバラ過ぎて検索できん」
などと悩むことになり、頭がこんがらがってオーバーヒートします。
はてに、コードを書く気力がなくなってしまいます。(私はさっき今まで書いていたコードが読みづらすぎてキレて全部コメントアウトしました。)
このままではコードの進捗どころか、ゲームの完成も危ういです。ピンチ!
そんな状況を打破するため、プログラミングコーディングやデザインパターンの本を読んでみたのですが…
内容が抽象的でコーディングの経験が浅いマンにとってはイメージすることが難しく感じました。(経験がある人だと「ああ、あの時ああすればよかったのか!」となるのですが、経験ないと「あの時」が思い浮かばないのですよね…。)
ということで、良い例をお手本にすることにしました。
良い例ってどこにあるんだ??
Unityはゲーム制作に使っている人も多いし、アセットストアには色んなゲームがあるので候補は数多くあるのですが、
今回はUnityの公式提供Asset「Tanks! Tutorial https://www.assetstore.unity3d.com/jp/#!/content/46209」
を参考にすることにしました。
(実はこのAssetは某ゲーム会社に1dayインターンに行ったときにも用いられていたゲームです。)
ゲームエンジンを作っているからには、ゲームも相当作っている人がいるはずですよね。そういう意味でも、参考になる知見を得られると思い、チョイスしてみました。
前置きが長くなりましたが、ここから、コードを読んでみて「上手い!」「天才か」と思った点を挙げていきたいと思います。
ちなみにゲームの概要としては、
2Pプレイで戦車(Tank)が2台あり、移動して弾を発射して相手のHPを削って倒し、決められた回数先取した方が勝利です。
まず、スクリプトの数
スクリプトの数が多すぎても少なすぎても複雑になります。
Tanks!で使われていたスクリプトのそれの概要は以下の通りでした。
カメラ系
- CameraControl
マネージャー系
- GameManager
- TankManager
シェル系
- ShellExplosion
タンク系
- TankHealth
- TankMovement
- TankShooting
UI系
- UIDirectionControl
の5ジャンル計8個のスクリプトで構成されています。
---
下書きではここまで書かれていました。根気のなさを感じる…。
気を引き締めて、記事の続きを書こうと思います。
今見たら説明できることが増えてるのかなと思うので、
一旦この記事を投稿して、追加で記事を書きます。
頑張ります。