この講座は、Unity C#の初心者向けプログラミング入門講座です。
挫折しない!を合言葉に丁寧にUnityC#の解説を行っていきます。
Unityを用いたゲームプログラミングなどに必須の知識が身に付く講座です。
全21回の本格的なUnity C#プログラミング入門講座を制作しました。
ぜひ読んでみてください^^
- 第1回 Unity C#言語とは
- 第2回 C#スクリプトの構造とは スクリプトの作成と実行方法
- 第3回 コンパイルエラーの種類と対処法について
- 第4回 変数と型の使い方 宣言や代入・型変換について
- 第5回 演算子の使い方をマスターしよう(算術、比較、論理、代入、条件演算子)
- 第6回 制御文の使い方1 if文・ switch文での条件分岐
- 第7回 制御文の使い方2 for文・while文・foreach文での繰り返し処理
- 第8回 配列の使い方 一次元・二次元・ジャグ配列
- 第9回 メソッドの使い方
- 第10回 文字列と文字列処理メソッドの使い方
- 第11回 列挙型の使い方
- 第12回 クラスとインスタンスの作り方・コンストラクタの使い方
- 第13回 フィールド・プロパティ・アクセス修飾子の使い方 スコープの概念を理解する
- 第14回 クラスの継承・抽象メソッドとオーバーライドの使い方
- 第15回 インターフェースの使い方・ポリモーフィズムの考え方
- 第16回 Listの使い方
- 第17回 辞書(ディクショナリー)の使い方 キーと値でデータを指定する
- 第18回 デリゲートとイベントとUnityActionの使い方
- 第19回 Linq・Attribute・拡張メソッド(partial class)の使い方
- 第20回 IEnumerable・IEnumeratorとコルーチンの使い方・作り方
- 第21回 例外処理の使い方 throw, try, catch, finally文について
第1回 Unity C#言語とは
講座の第1回では、ゲームプログラミングを行う上で必要なUnity、そしてそのUnityを動かすためのC#言語について俯瞰的に解説しています。
UnityC#を学ぶことでどんなコンテンツが作れるようになるのかもバッチリ解説。
また、C#を習得するとUnityを用いたゲーム開発はもちろん、Webアプリやモバイルアプリ、VRやMRなど様々なアプリケーションが開発できるようになります。
オブジェクト指向プログラミング言語の一つであるC#を学ぶメリットもわかります。
第2回 C#スクリプトの構造とは スクリプトの作成と実行方法
この回ではUnityの画面の操作法やC#スクリプトを作って動かす実際のC#プログラミングを学ぶことができます。
制作途中の操作画面を多数キャプチャして解説しているので初心者さんでも安心。目で見て、手で実際に動かしてUnity C#スクリプトを作成してプログラミングできるようになります。
- スクリプトを作成
- 作成したスクリプトをコンパイルエラーなしになるように編集
- 編集したスクリプトを適当なGameObjectにアタッチする
こうした一連のUnityとC#を用いたプログラミング流れを習得することができます。
第2回 C#スクリプトの構造とは スクリプトの作成と実行方法
第3回 コンパイルエラーの種類と対処法について
第3回ではプログラミングに付き物であり、初心者にとっての難関である「コンパイルエラー」の処理方法について学びます。
初心者が起こしやすいコンパイルエラーとその対処法についていくつか解説しています。
第4回 変数と型の使い方 宣言や代入・型変換について
C#プログラミングにおいて重要な変数を扱います。
変数を使う前の変数宣言や初期化の方法、変数の扱い方、変数の型などについて学んでいきます。
整数を使いたい場合はint, 実数を使いたい場合はfloat, 文字列を使いたい場合はstring。
「型」はプログラミングの世界ではとても重要なのでしっかり学んでいきましょう。
第5回 演算子の使い方をマスターしよう(算術、比較、論理、代入、条件演算子)
第5回では演算子について解説していきます。
演算子は簡単に言うと、足し算、掛け算、引き算、割り算などを意味する記号ですね。
プログラミングする上ではこうした四則演算以外でも演算子を利用することがあります。
代入、算術、比較演算子だけでなく、論理演算子やビット演算子などについても解説します。
第5回 演算子の使い方をマスターしよう(算術、比較、論理、代入、条件演算子)
第6回 制御文の使い方1 if文・ switch文での条件分岐
今回は制御文を利用した条件分岐の使い方を学びます。
条件分岐を実現する代表的なものとして、if文とswitch文があります。
これらを用いてAならばBの処理、CならばDの処理といったような分岐や場合分けを実装することができます。
プログラミングにおいて、制御文の操作はとても重要です。
今回の条件分岐と次回の繰り返し処理までマスターすればひとまずプログラミングでアプリケーションを作ることが可能になります。
第6回 制御文の使い方1 if文・ switch文での条件分岐
第7回 制御文の使い方2 for文・while文・foreach文での繰り返し処理
第7回では前回に引き続き制御文の使い方を習得します。
プログラミングにおいて条件分岐と並んで最重要である繰り返し処理をマスターしましょう。
繰り返し処理とは、指定した条件が満たされている間決まった処理を繰り返すことです。
Unity C#でよく使うfor文、while文、foreach文の使い方を中心に習得していきます。
第7回 制御文の使い方2 for文・while文・foreach文での繰り返し処理
第8回 配列の使い方 一次元・二次元・ジャグ配列
第8回ではデータ構造の一つである配列について学びます。
配列を使うことで同じ種類の変数をまとめて扱えます。プログラミングで必須の知識になるのでしっかり理解していきましょう。
ゲームプログラミングでは配列を使って2次元マップのデータに利用したり、ボードゲームの駒の配置や得点AIの作成などによく使われます。
第9回 メソッドの使い方
第9回は一通りの処理をまとめ、後から呼び出すための文法、「メソッド」を学習します。
メソッドはゲームプログラミングで必ず使うことになります。
例えばRPGであれば敵の攻撃処理、フィールド間での移動処理、主人公の会話処理など異なる機能をたくさん作ることになります。
こうした各機能を何度もその都度書いていたらソースコードがどんどん長くなってしまいます。
数十行以上あるような長いコードもメソッドとして作れば呼び出し命令文1つで使えます。
メソッドのオーバーロードやキーワード付き引数など少し発展的な内容も扱うので初心者さん以外にもおすすめです。
第10回 文字列と文字列処理メソッドの使い方
第10回では文字列を扱うためのプログラミング知識を学びます。
String型を使った文字列の格納、String型が保有しているメソッド、エスケープシーケンスの使い方などを実例付きで解説。
また、Format書式と呼ばれる変数の出力方法を指定する便利な機能も解説。
多くのメッセージを表示するゲームを作る場合は身に着けておきたい内容です。
第11回 列挙型の使い方
ここでは、新しい型として列挙型(列挙体)を扱います。
列挙型を使えば多くの定数に命名できるため、ゲームプログラミングではかなり便利な機能です。
RPGであれば武器屋さんの武器名、敵モンスターの名前、ゲーム内イベント名などをいちいち番号で記述すると何がなんだかわかりにくいです。
そんな場合でも列挙型を使えばわかりやすい文字列として数値を扱うことができます。
様々な用途で活用でき、コードもシンプルに読みやすくなる技術なのでぜひ身に付けましょう。
第12回 クラスとインスタンスの作り方・コンストラクタの使い方
第12回ではメソッドだけでなく、変数や初期化処理などもまとめて扱えるクラス、インスタンスについて解説します。
UnityやC#では基本的なライブラリや提供されている機能もクラスを用いて定義されていることがほとんどです。
そのため、クラスの仕組みを知っておくことで様々な機能を活用しやすくなります。
Unity C#では自分で新しいクラスを定義してゲームオブジェクトに機能を追加していくのでマスターしておきましょう。
Unity C# クラスとインスタンスの作り方・コンストラクタの使い方
第13回 フィールド・プロパティ・アクセス修飾子の使い方 スコープの概念を理解する
第13回は12回の内容の続きです。
クラスで定義できるフィールド、プロパティ、そしてクラスの外からの参照を許すかどうかを決めるアクセス修飾子やスコープについて解説します。
クラスに付随するこうした機能を活用することで着目しているコードとそれ以外のコードの区分けを明確にすることができます。
これによりバグが発生しにくくなりますし、発生したとしても原因特定する際の箇所が絞り込まれます。
他人と共同で開発する際にも作る機能の担当箇所を切り分けることができます。
Unity C# フィールド・プロパティ・アクセス修飾子の使い方 スコープの概念を理解する
第14回 クラスの継承・抽象メソッドとオーバーライドの使い方
第14回ではクラスの継承、抽象メソッド、オーバーライドと少々発展的な内容を扱います。
Unityでは新しいクラスを作成するとMonoBehaviourが初期に継承されており、実はUnityを用いた開発では常に利用されている機能になります。
また、isやasといったキーワードやnullやthisといった応用的な文法の扱いもここで学んでいきます。
実際に継承、抽象メソッド、オーバーライドを使ったコーディングを体験できる記事になっています。
Unity C# クラスの継承・抽象メソッドとオーバーライドの使い方
第15回 インターフェースの使い方・ポリモーフィズムの考え方
第15回ではオブジェクト指向プログラミングで最も役立つ機能の一つであるインターフェースを扱います。
インターフェースを使うと「最初はクラスの仕様をゆるく定めておき、インターフェースの中身を実装する際に細かい定義を行って機能をカスタマイズしながら実装する」なんてことができるようになります。
継承と異なり、複数のインターフェースを継承できますし、切り分けも簡単なのでゲームプログラミングで自分のクラスを作ったり機能を再利用するときはできるだけインターフェースを使う方が良いでしょう。
応用的な内容にはなりますが、Unity C#の文法をある程度使いこなせるようになったら挑戦してみてください。
Unity C# インターフェースの使い方・ポリモーフィズムの考え方
第16回 Listの使い方
Listはコレクションともよばれ、配列より多機能なデータ構造です。
同じ型の変数をまとめて扱える点、要素の代入や宣言方法など配列とかなり近い部分もありますが、
そもそもの格納する変数の数(要素数)を増やしたり減らしたりもでき、List型を使えばより便利にデータを扱えます。
実際のゲームプログラミングではかなり出現頻度が高くなるのでぜひマスターしておきましょう。
第17回 辞書(ディクショナリー)の使い方 キーと値でデータを指定する
第17回では辞書型を扱います。辞書型をつかうと配列やリストのように添え字を指定してデータを取り出すのではなく、文字列に紐づけてデータ取得することも可能になります。
何かの情報と1対1対応させたペアデータをひとまとめにして扱いたい場合に用います。
並び順がランダムになるという特性がありますが、これがデメリットになる場合を除くとデータ同士の紐づけ、取り出し、保存の観点でかなり便利な機能になります。
二つのデータをペアで保存してどちらかをベースにしてもう片方を取り出したいときに使っていきましょう。
辞書型はプログラミングでよく出てくるのでぜひマスターしてください。
Unity C# 辞書(ディクショナリー)の使い方 キーと値でデータを指定する
第18回 デリゲートとイベントとUnityActionの使い方
第18回はC#プログラミング言語の文法の中ではかなり発展的なデリゲートとイベントについて学びます。
ただし、UnityでもUnityAction、UnityEventという形でデリゲートとイベントが定義・利用されているので内容自体は頻出の内容になります。
インスペクター画面だけでイベントを設定していれば表面上は知らなくても問題ないですが、スクリプトから新しいイベント欄をインスペクターに作ろうとすると避けては通れません。
知っておくとUnity開発の応用幅が大きく広がります。
第19回 Linq・Attribute・拡張メソッド(partial class)の使い方
第19回ではUnity C#をより効率的に活用するための応用文法を学びます。
中でもLinqはList型などに代表されるC#のコレクション機能を使いこなす上でとても役立つ機能です。
where句を使う条件判定と抽出はぜひ習得してください。
属性と呼ばれ、Unityではよく見かける「SerializeField」の文法的位置づけなども学べます。
Linq・Attribute・拡張メソッド(partial class)の使い方
第20回 IEnumerable・IEnumeratorとコルーチンの使い方・作り方
第20回ではUnityに頻出のコルーチンを習得できます。
コルーチンに出てくる型であるIEnumerator、そのIEnumeratorに関連するIEnumerableについてまず学び、Unity C#で出てくる非同期処理コルーチンをマスターしていきます。
IEnumerable・IEnumeratorとコルーチンの使い方・作り方
第21回 例外処理の使い方 throw, try, catch, finally文について
第21回ではプログラミングにおいて必ず必要になる例外処理について学びます。
デバッグやエラー対策に役立つ機能です。
デバッグ時にエラーが出たことにしてどんな処理が出るか確認したり、予期せぬエラーが起きたときに何かしらの通知を行うようにしておくなど活用のタイミングは意外とよく出てきます。
内容自体は難しくないのでぜひ習得してみてください。