スクリプトの使い方

スクリプトの使い方画像

こんにちは、ゲーム制作を個人で行っておりますAMGです。
スクリプトの使い方を今回は解説していこうと思います。
既に上級レベルでゲームを開発している方からしたら、使い方が間違っていると思われるかもしれませんが、何卒!

【目次】
1つのスクリプトで完結する方法
1つの動作ごとに分ける
フォルダー分けも活用する
まとめ


1つのスクリプトで完結する方法

スクリプトはぶっちゃけ分けずに一つのスクリプトで完結させることが出来ます!判定処理、変数、メソッド…一つのScriptに書いてしまえば他のスクリプトを参照するといった面倒なことがなくなります。

その代わりデメリットとして、
『可読性が著しく低下する』
『修正したい部分まで遡るのが面倒になる』
『行数がとんでもない事になる』です。

可読性と行数については関連性があると思いますが、開発していくうえで大事なのはコードを見ただけで何をしているかです。
個人制作なら問題ないです。しかし、他の方と共同で制作していきたい場合は、可読性が低いのはなるべく避けたいです。

ゲーム制作は、デバック(テスト)を繰り返しながらしていくものだと個人的に思っています。
よって、不備がある、想像していた通りに動かないといったエラーがあると、その部分まで遡らなくてはなりません。
この時に行数が沢山あると、その部分まで戻るのに結構大変です。どの部分かを探し出すのも一苦労。
時間も勿体ないです。

これらの事から、一つのスクリプトで完結させるのは避けた方が良いでしょう。


1つの動作ごとに分ける

個人的には、というより多分このやり方が正解?に等しいと思うのですが、スクリプトの使い方は、一つの動作ごとに分けて書いてあげると、修正がしやすく、可読性も向上します。

動作ごとと言うのは、例えばオブジェクトの衝突判定だけのスクリプト、プレイヤー操作だけのスクリプト、セーブ機能のスクリプトと言った感じです。

ゲームをより面白く作っていこうとすると、その分記述量が増えます。衝突判定した際の判別も細かく判別するようになっていくと、最初は少しだけしか書かれていなかったコードも、増えていきます。

また、同じオブジェクトでも別の動きをしてほしいとき等は、スクリプトを差し替えるだけなので管理も楽になっていきます。

このAオブジェクトを倒したらアイテムを生成する。
(そういうスクリプトを作成しアタッチする)

別のAオブジェクトは中身は同じ。
だが、こたらはアイテム生成をしないタイプにする。
(スクリプトをアタッチしない)


フォルダー分けも活用する

スクリプトの量が多くなってくると管理も複雑になっていきます。Unityではフォルダーを作成することが出来るので、オブジェクトごとにフォルダー分けをし、管理していくことをお勧めします。

例えばプレイヤーオブジェクトのスクリプトは、
フォルダー名:PlayerScript
スクリプト名:
PlayerCollusionScript
PlayerMoveScript
PlayerManager
PlayerBulletScript etc…

エネミーオブジェクトのスクリプトは、
フォルダー名:EnemyScript
スクリプト名:
EnemyCollusionScript
EnemyMoveScript1
EnemyManager
EnemyBulletScript
GenerateItemScript etc…

エネミーの動き方のスクリプトを複数用意する場合は、更にフォルダーを作成し、まとめておくと便利です。


まとめ

僕自身もまだ理解不足だったりします。
このやり方が正解と言うわけではないので一概にこうすべき!という事はありません。
ですが、右も左も分からない状態からスタートするのであれば、是非一度このやり方でスクリプトを書いてみてください!
そこから自分なりのやり方で、ゲーム制作を楽しんでいただければと思います!

と言うわけで皆さん、また次回!