Unity開発を趣味でちょこちょこ行っていますが、実はC#は「ノリ」で利用していました。
いい加減C#についてきちんと勉強しておこうということで、タイトルにある書籍を購入することにしました。
総評:UnityとC#の知識が同時に得られる本でした
Unity 3Dゲーム開発ではじめるC#プログラミングということで、Unityで簡単なゲームを作成しつつ、都度C#の機能を紹介していく内容になっています。
ゲームを作りながら、都度必要となるC#の機能を紹介しているため、ゲーム作成のどの部分にC#の機能を利用すれば良いのか、イメージを使い見やすい内容になっていました。
C#のすべての機能(例えばLINQとか)は網羅されてはいませんが、Unityでゲームを作ってみたいと思ったときに良い道標となりそうな本でした。
各章の簡単な概要
1章:開発環境を理解しよう
Unityのインストールからドキュメントの読み方まで。
バージョンは少し古いですが、Unity Hubを利用したインストール方法が紹介されているので今読んでも十分に対応できる内容だと思います。
2章:プログラミングの構成要素
変数、メソッド、クラスの紹介、クラスで定義した変数やメソッドへのアクセス方法など。
コメントのショートカットキーや名前の重要性など、効率や保守性に関わる紹介もありました。
3章:変数と型とメソッドの世界
C#の構文の説明、変数の型、クラスのアクセス識別子、メソッドの定義方法や引数、戻り値の定義など。
Unity標準メソッド(Start()など)の紹介もありました。
4章:制御の流れとコレクション
if-else、switchといった制御文、for、whileといったループ制御、DictionaryやListとの連携など。
無限ループの話題もありました。
5章:クラスと構造体とOOP
クラスに関して集中的に解説した章。コンストラクタ/デストラクタ、new、ポリモーフィズムや継承など。
Unityでの利用例としてGetComponentでコンポーネントを取得し、操作する例も照会されています。
6章:Unityに挑む
この章から、実際にサンプルゲームを作成していきます。
ゲームデザイン、ステージ作成、アイテム作成、パーティクル作成を進めていきます。
7章:動きとカメラ制御と衝突
プレイヤーの設置と移動処理、アイテムと敵とのRigidBodyを利用した衝突判定について。
8章:ゲームのメカニズムを記述する
プレイヤーのジャンプ、アイテム収集の改修、シューティング要素の追加、GUIの追加など。
timeScaleを利用したポーズの実装などを行います。
9章:基本的なAIと敵の動き
ナビメッシュを利用した敵の巡回と、プレイヤー発見時の行動変化を作成します。
10章:再び、型とメソッドとクラスについて
クラスについて、staticやconst、out/ref、インターフェース、オーバーライドなど、最初に触れていなかった項目について解説去れています。
11章:スタックとキューとハッシュセット
スタック、キュー、ハッシュセットと言ったデータ構造の利用方法について。
ゲーム開発におけるデータ構造の使い方が解説去れています。
12章:ジェネリック、デリゲート、イベント、例外処理など
ジェネリックやデリゲートの利用方法、イベントの追加方法など。
この章で一旦サンプルゲームも完成します。
13章:C#とUnityの旅はまだ続く
本書で扱わなかったC#のほかトピックの紹介、Unityの情報収集の方法など、今後自力で隔週を進めていくうえで参考となる情報がまとめられています。
以上
ということで、簡単に本の紹介をさせていただきました。
本の内容自体は基礎的な部分が大半なので「知ってるよ」という気持ちで読んでいましたが、ショートカットキーや他の方のゲームのプロジェクト構成やプログラムの組み方などは普段見る機会が無いため、参考になりました。
「基礎的なことでしょ?」と決めつけてしまう前に、一度目を通しておくべき本だと思いました。