Unity本「Unity 3Dゲーム開発ではじめるC#プログラミング」ブックレビュー

Book Review for "Learning C# by Developing Games with Unity 2020"

Posted by 51n1 on 02 Jun, 2022

もくじ

基本データ

本書要約

今回、学習したUnity本は「Unity 3Dゲーム開発ではじめるC#プログラミング」です。原書は英語の著書となります。原書のウェブページは「 Learning C# by Developing Games with Unity 2020」です。原書では現在第6版(本書は第5版)まで書かれておりUnity 2021のバージョンに対応しているようです。

本書使用のUnityバージョンは2020.1となっています。また、本書想定読者はプログラミング未学習者をメインの対象者としていますが、後半になると高度なプログラミング技術についても言及しており、プログラミング中級者までをその範囲としています。

超要約

  • 1章~5章:C#の基本
  • 6章~9章:UnityでC#を実践する
  • 10章~13章:C#の応用(実際のコーディング学習は少なめになります。)

本書の目次と内容

  • 第1章 開発環境を理解しよう
    UnityのインストールとUnityでのC#スクリプトファイルの作成方法を学習するします。
  • 第2章 プログラミングの構成要素
    C#基礎を学習します。変数、メソッド、クラス、オブジェクト、Unityコンポーネントなど。
  • 第3章 変数と型とメソッドの世界
    変数とメソッドについてより詳しく学習します。
  • 第4章 制御の流れとコレクション
    制御文、コレクション、繰り返し文について学習します。
  • 第5章 クラスと構造体とOOP
    クラス、構造体、OOPについて学習します。
  • 第6章 Unityに挑む
    3Dゲームのプロトタイプを作成します。また、Lighting, Animation, Particle SystemなどのUnityの基本要素についても簡単に学習します。
  • 第7章 動きとカメラ制御と衝突
    プレイヤーの動かし方を学習します。
  • 第8章 ゲームのメカニズムを記述する
    ジャンプを追加します。また、シューティング機能やゲームマネージャーを作成します。
  • 第9章 基本的なAIと敵の動き
    Unityの標準コンポーネントであるNavMeshを使って敵AIを実装します。
  • 第10章 再び、型とメソッドとクラスについて
    変数、メソッド、クラスについてさらに学習を進めます。
  • 第11章 スタックとキューとハッシュセット
    スタック(Stack)、キュー(Queue)、ハッシュセット(HashSet)について学習します。
  • 第12章 ジェネリック、デリゲート、イベント、例外処理など
    ジェネリック、デリゲート、イベント、例外処理について学習します。
  • 第13章 C#とUnityの旅はまだ続く
    本書学習後のおすすめの学習教材などC#やUnityの学習リソースについて知ることができます。

学習後の感想

本書で作成する3Dゲームプロトタイプ

Visual Studioの画面

学習内容的にはプログラミング未経験者でも学習可能な内容となっていますが、何事も1冊の本では技術や知識の習得には至らないですので、本書以外のプログラミング学習は必要と思います。

第1章から第5章の学習内容はどのプログラミング言語でも必須となるような内容ですので、C#に限らすもっと学習しやすい言語で学習しても良いと思います。個人的にはプログラミング未学習者であれば、JavaScriptやProcessingなどがおすすめです。

全体を通して、実際のゲームプログラミングで使いそうなコーディングの例を挙げて学習しますので理解しやすいと思います。また、3Dゲームの基本的なコードの実装をサンプルとして作成します。

6章ではレベル(ステージ)作成をするのですが、既成のデモサンプルなどを使わず学習者に一から作成させるのは好感が持てる内容です。

良い点・悪い点まとめ

良い点

  • C#とUnityの両方を学習できる。
  • 正当なルールに則したC#プログラミングを使い3Dゲームの開発を学習できる。
  • クラスの作成だけではないOOPの学習ができる。

悪い点

  • 翻訳文のクセ(口語調)が多少強い。
  • スクリーンショットが日本語環境のものに差し替えらえてしまっている。原書のままが良かった。
  • 後半のC#の応用学習については説明が駆け足になるところがある。