garnetcode.jp の記事で登場する Unity / プログラミング用語の解説集。
MonoBehaviour
Unity でゲームオブジェクトの挙動を記述するスクリプトの基底クラス。Awake / Start / Update などのライフサイクルメソッドを持ち、コンポーネントとして GameObject にアタッチして使う。GameObject
Unity のシーンを構成する基本単位。それ自体は入れ物で、Transform を必ず持ち、各種コンポーネントをアタッチすることで見た目や挙動を与える。GetComponent
GameObject にアタッチされたコンポーネントを型指定で取得するメソッド。見つからない場合は null を返す。毎フレーム呼ぶ場合はキャッシュが推奨される。ScriptableObject
データをアセットとして保存できる基底クラス。シーンや GameObject に依存せず設定値やマスタデータを持てるため、複数の場面で同じデータを共有したいときに使う。SerializeField
private のフィールドを Inspector に表示し、シリアライズの対象にする属性。公開せずに外部から値を設定したいときに使う。Instantiate
プレハブやオブジェクトを複製して新しいインスタンスを生成するメソッド。生成のたびにコストがかかるため、頻繁な生成と破棄はオブジェクトプールに置き換えることが多い。Destroy
GameObject やコンポーネントを破棄するメソッド。実際の破棄は呼び出したフレームの終わりに行われるため、直後に参照しても null にはならない点に注意。Component
GameObject にアタッチして機能を与える部品の基底クラス。Transform や Rigidbody などのコンポーネントはすべてこれを継承している。UnityEvent
Inspector 上でコールバックを登録できるイベント型。コードを書かずに、ボタンを押したときの処理などをオブジェクト同士で紐づけられる。PlayerPrefs
キーと値の組を端末に保存する簡易な永続化の仕組み。音量や難易度といった設定値の保存に向くが、平文で保存されるため機密情報には使わない。ObjectPool
生成したオブジェクトを破棄せずに使い回す仕組み。生成と破棄の繰り返しによる負荷とガベージコレクションを抑えられる。弾やエフェクトのように大量に出し入れするものに向く。StringBuilder
文字列の連結を効率よく行うクラス。ループの中で + による連結を繰り返すと中間の文字列が大量に生成されるため、その置き換えに使う。LINQ
コレクションに対する絞り込みや並べ替えを宣言的に書ける仕組み。可読性は上がるが、毎フレーム実行する箇所ではメモリの確保が積み重なるため注意が要る。位置・回転・大きさを保持するコンポーネント。すべての GameObject が必ず1つ持ち、親子関係もここで表現される。UI 向けに Transform を拡張したコンポーネント。アンカーとピボットを持ち、親の大きさに応じた配置や伸縮を表現できる。Rigidbody
GameObject を物理演算の対象にするコンポーネント。重力や力による移動を担うため、位置の操作は Transform ではなくこちら経由で行うのが基本。Collider
衝突判定の形状を与えるコンポーネント。Is Trigger を有効にすると物理的に押し返さず、重なりの検知だけを行う。Animator
アニメーションの再生と遷移を制御するコンポーネント。ステートマシンとパラメータを使い、条件に応じてアニメーションを切り替える。Camera
シーンを画面に描画するコンポーネント。描画範囲や投影方法のほか、Culling Mask でどのレイヤーを映すかを制御できる。Canvas
UI を描画する土台となるコンポーネント。すべての UI 要素はこの配下に置く必要があり、Render Mode によって画面固定か空間配置かが決まる。CanvasGroup
配下の UI 全体の不透明度や入力可否をまとめて制御するコンポーネント。フェードやパネルの一括無効化に使う。Sprite
2D の描画に使う画像アセット。1枚のテクスチャを分割して複数のスプライトとして扱うこともできる。Material
シェーダーとそのパラメータをまとめ、見た目を決めるアセット。同じマテリアルを共有するオブジェクトは描画をまとめられるため、負荷にも影響する。Texture
モデルや UI に貼り付ける画像データ。圧縮形式と最大サイズの設定がメモリ使用量と見た目を大きく左右する。RenderTexture
描画結果を画面ではなくテクスチャに書き出す仕組み。ミニマップや鏡、画面内モニタの表現に使う。RawImage
テクスチャをそのまま表示する UI コンポーネント。スプライトを必要とせず、RenderTexture の表示にも使える。Image
スプライトを表示する UI コンポーネント。塗りつぶし量を変えられるため、体力バーやクールダウンの表現にも使われる。押下を受け取る UI コンポーネント。押されたときの処理は Inspector かスクリプトから onClick に登録する。TextMeshPro
Unity の標準的なテキスト表示の仕組み。文字を輪郭情報として扱うため、拡大しても輪郭がぼやけず、縁取りや影などの装飾も行える。FontAsset
TextMeshPro が文字の描画に使うアセット。フォントから必要な文字を抜き出して作るため、日本語では収録する文字の範囲がサイズと表示可否を左右する。uGUI
Canvas と RectTransform を基礎にした Unity 標準の UI システム。ゲーム内 UI の構築で長く使われている。Vector2
2つの数値の組を表す構造体。2D の座標や画面上の位置、方向の表現に使う。Vector3
3つの数値の組を表す構造体。3D の座標や方向、大きさの表現に使う。正規化や内積といった計算用のメソッドも備える。CustomEditor
特定のコンポーネントに対して Inspector の表示を差し替えるための属性。既定の並びでは扱いにくい設定に、専用の UI を用意できる。エディタのメニューに独自の項目を追加する属性。付けたメソッドがメニューから呼び出せるようになり、定型作業の自動化に使う。UnityEditor
エディタ拡張用の API がまとめられた名前空間。ビルドには含まれないため、実行時のコードから参照するとビルドが失敗する。エディタ専用フォルダか条件付きコンパイルで囲って使う。Addressables
アセットをアドレスで指定して読み込む仕組み。実体がローカルかリモートかを呼び出し側が意識せずに済み、後からの差し替え配信もしやすくなる。PackageManager
パッケージの追加・更新・削除を行うエディタの機能。導入したパッケージとバージョンはプロジェクト内のマニフェストに記録される。UGS
Unity Gaming Services の略。認証やセーブデータ、遠隔設定、対戦のマッチングなど、ゲーム運営に必要なサーバー側の機能をまとめて提供する。Authentication
UGS のうち、プレイヤーを識別するためのサービス。匿名サインインのほか、各種アカウントとの連携にも対応する。他の UGS 機能を使う前提になることが多い。CloudSave
UGS のうち、セーブデータをサーバーに保存するサービス。端末を替えても続きから遊べるようになる。Inspector
選択中のオブジェクトやアセットの設定を表示・編集するウィンドウ。コンポーネントの値の調整はここで行う。Hierarchy
シーンに置かれた GameObject の一覧と親子関係を表示するウィンドウ。ドラッグで入れ子にすると、親の移動や回転が子にも及ぶようになる。Console
ログ・警告・エラーが表示されるウィンドウ。実行時の例外もここに出るため、不具合の調査はまずここを見る。SceneView
シーンを編集するための視点で操作するウィンドウ。オブジェクトの配置や大きさの調整はここで行う。GameView
実際にプレイヤーが見る画面を表示するウィンドウ。解像度やアスペクト比を切り替えて、端末ごとの見え方を確認できる。Project
プロジェクト内のアセットをフォルダ構造で表示するウィンドウ。素材の検索や、プレハブ・スクリプトの整理はここで行う。DontDestroyOnLoad
シーンを切り替えても破棄されないよう、GameObject を専用の領域へ移す関数。対象はルート(親を持たない)の GameObject に限られる。BGM 管理やシングルトンなど、シーンをまたいで使いたいオブジェクトに使う。FixedUpdate
一定の時間間隔(既定 0.02 秒)で呼ばれるイベント関数。フレームレートに左右されないため、Rigidbody を使った物理処理はここに書く。OnDestroy
GameObject やコンポーネントが破棄される直前に呼ばれるイベント関数。イベント購読の解除や後片付けに使う。OnEnable
コンポーネントが有効になったときに呼ばれるイベント関数。有効化のたびに呼ばれるので、イベントの購読開始などを書く。OnDisable
コンポーネントが無効になったときや破棄されるときに呼ばれるイベント関数。OnEnable と対にして、購読の解除などを書く。LineRenderer
指定した座標の配列を線で結んで描画するコンポーネント。レーザーや軌道予測線、ロープの表現に使う。AspectRatioFitter
UI 要素の縦横比を保つように RectTransform のサイズを調整するコンポーネント。画面サイズが変わっても画像の比率を崩さずに済む。AudioSource
AudioClip を再生するコンポーネント。音量・ピッチ・ループ・3D サウンドの設定を持ち、BGM や効果音の再生に使う。TrailRenderer
移動したオブジェクトの後ろに軌跡を描画するコンポーネント。剣の振りや弾の残像などの表現に使う。VideoPlayer
動画ファイルや URL の動画を再生するコンポーネント。カメラや RenderTexture、マテリアルへ映像を出力できる。AnimationCurve
キーフレームで定義した曲線を表すクラス。インスペクターで曲線を編集でき、時間に応じた値の変化(イージングなど)に使う。AddForce
Rigidbody に力を加えるメソッド。ForceMode で、継続的な力か瞬間的な衝撃かなど、力の加え方を切り替えられる。Lerp
2つの値の間を割合 t(0〜1)で線形補間する関数。Mathf・Vector3・Color などに用意されていて、なめらかな移動や色の変化に使う。MovePosition
Rigidbody を指定した位置へ移動させるメソッド。物理演算と整合を取りながら動かせるため、キネマティックな移動に向く。TryGetComponent
コンポーネントの取得を試み、成功したかを bool で返すメソッド。エディター上で見つからなかった場合も GetComponent のような余分なメモリ割り当てが発生せず、null チェックも簡潔に書ける。RequireComponent
スクリプトが依存するコンポーネントを指定する属性。アタッチ時に必要なコンポーネントが自動で追加され、削除もできなくなる。WaitForSeconds
コルーチンの中で指定秒数だけ処理を待つためのクラス。yield return new WaitForSeconds(1f) のように使う。Time.timeScale の影響を受ける。エディター拡張で独自のコンテキストメニューやドロップダウンメニューを作るクラス。項目を追加して ShowAsContext などで表示する。IEnumerator
要素を順番に取り出すための C# のインターフェース。Unity ではコルーチンの戻り値の型として使い、yield return で処理を区切る。CancellationToken
非同期処理にキャンセルを伝えるための C# の構造体。CancellationTokenSource から発行し、処理を途中で止めたいときに使う。Task
C# の非同期処理を表すクラス。async メソッドの戻り値に使い、await で完了を待てる。値を返す場合は Task を使う。Dictionary
キーと値の組を管理する C# のコレクション。キーを指定して値を高速に取り出せる。同じキーは重複して登録できない。Array
同じ型の要素を並べた、サイズ固定のコレクション。配列とも呼ぶ。インデックスで要素にアクセスでき、作成後に要素数は変えられない。HashSet
重複しない要素の集合を管理する C# のコレクション。要素が含まれるかを高速に判定できる。Queue
先に入れた要素から順に取り出す(先入れ先出し)C# のコレクション。Enqueue で追加し、Dequeue で取り出す。Stack
最後に入れた要素から順に取り出す(後入れ先出し)C# のコレクション。Push で追加し、Pop で取り出す。LinkedList
要素同士を前後の参照でつないだ C# のコレクション。途中への挿入や削除は速いが、インデックスで直接アクセスはできない。DOTween
位置・回転・色などの値を時間をかけて変化させる Unity 向けのトゥイーンライブラリ。アニメーションを短いコードで書ける。UnityEngine
Unity の基本機能(GameObject・Transform・MonoBehaviour など)がまとまった名前空間。スクリプトの先頭で using UnityEngine; と書いて使う。