ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Component とは
Unity の根幹的な設計思想は Entity-Component(実体・部品)パターンです。シーンの全オブジェクトは GameObject という空の入れ物で、そこに様々な Component をアタッチすることで機能を付与します。
たとえば「重力で落ちる箱」は次の組合せ:
- Transform: 位置(必ず付く)
- MeshFilter + MeshRenderer: 立方体の見た目
- BoxCollider: 当たり判定
- Rigidbody: 物理挙動(重力)
継承ではなく合成(コンポジション)で機能を作るため、再利用性と柔軟性が高いのが特徴です。
標準コンポーネント一覧
| カテゴリ | 主なコンポーネント | 役割 |
|---|---|---|
| 必須 | Transform | 位置・回転・スケール(全 GameObject に付与、削除不可) |
| 描画 | MeshFilter / MeshRenderer / SkinnedMeshRenderer / SpriteRenderer / LineRenderer | メッシュ・スプライト・線の描画 |
| 物理 3D | Rigidbody / BoxCollider / SphereCollider / MeshCollider / CharacterController | 剛体運動・当たり判定 |
| 物理 2D | Rigidbody2D / BoxCollider2D / CircleCollider2D / PolygonCollider2D | 2D 物理 |
| 音 | AudioSource / AudioListener | 音再生・リスナー |
| カメラ | Camera / Cinemachine 系 | 視点・追従 |
| UI | Canvas / Image / Text / Button / RectTransform | UGUI |
| ライト | Light / LightProbeGroup / ReflectionProbe | 光源・プローブ |
| スクリプト | MonoBehaviour 派生クラス | 自作の挙動 |
Add Component で追加
もっとも基本的な操作。GameObject を選択し、Inspector 最下部の Add Component ボタンから:
- Inspector の Add Component をクリック
- 検索ボックスに名前(例:
Rigidbody)を入力 - サジェストから選択 → 追加
Project ウィンドウからスクリプト .cs ファイルを Inspector の余白にドラッグしてもアタッチできます。
MonoBehaviour で自作コンポーネント
独自の挙動は MonoBehaviour を継承したクラスとして書きます:
using UnityEngine;
// ファイル名は PlayerController.cs(クラス名と一致)
public class PlayerController : MonoBehaviour
{
// public 変数は Inspector でシリアライズされる
public float moveSpeed = 5f;
// private でも [SerializeField] でシリアライズ可
[SerializeField] private float jumpPower = 8f;
private Rigidbody rb;
// GameObject 生成時に 1 度
void Awake()
{
rb = GetComponent();
}
// 毎フレーム呼ばれる
void Update()
{
float h = Input.GetAxis("Horizontal");
transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime);
if (Input.GetButtonDown("Jump"))
rb.AddForce(Vector3.up * jumpPower, ForceMode.Impulse);
}
}
GetComponent でコンポーネント取得
同じ GameObject に付いた他コンポーネントを参照する基本パターン:
// 同 GameObject 上のコンポーネント取得
Rigidbody rb = GetComponent();
// 配列で全部取得
Collider[] cols = GetComponents();
// 子(自分含む)から探す
Animator anim = GetComponentInChildren();
// 親方向に探す
Canvas canvas = GetComponentInParent
パフォーマンスTip: GetComponent は重いので、Update 内で毎回呼ぶのは避けて Awake / Start でキャッシュします。
RequireComponent 属性
「このスクリプトを動かすには、必ず Rigidbody も同 GameObject に必要」を宣言できます:
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
[RequireComponent(typeof(Collider))]
public class Bullet : MonoBehaviour
{
private Rigidbody rb;
void Awake() => rb = GetComponent();
}
このスクリプトをアタッチすると、Rigidbody と Collider が無ければ自動で追加されます。逆に手動で削除しようとすると警告が出ます。
有効・無効の切替
Inspector のコンポーネント名の左にあるチェックボックスで有効/無効を切替できます。スクリプトからは:
// コンポーネント単位で無効化
GetComponent().isKinematic = true; // 物理停止
GetComponent().enabled = false; // 描画停止
GetComponent().enabled = false; // 当たり判定停止
GetComponent().enabled = false; // スクリプトの Update を停止
// GameObject 全体を無効化(含まれる全コンポーネントが無効)
gameObject.SetActive(false);
AddComponent で動的追加
// 実行中にコンポーネントを追加
var rb = gameObject.AddComponent();
rb.mass = 5f;
rb.useGravity = true;
// 削除
Destroy(GetComponent());
Inspector でのシリアライズ
変数を Inspector に表示・編集可能にするにはシリアライズ可能な型である必要があります:
| 修飾子 | Inspector 表示 | 外部アクセス |
|---|---|---|
public | あり | あり |
[SerializeField] private | あり | なし(推奨) |
private | なし | なし |
public [HideInInspector] | なし | あり |
シリアライズ可能型: 基本型 / Unity 型(Vector3, Color, Transform 等)/ 配列・List / [Serializable] 付き class・struct。
FAQ
Q: GameObject と Component の違いは?
A: GameObject はただの入れ物(名前と Transform)で、機能は全て Component が担う。「箱」と「中身」の関係。
Q: 同じコンポーネントを 2 つ付けたい
A: 一般に標準コンポーネント(Rigidbody / Camera 等)は 1 つだけ。スクリプトは複数可。設計を見直して 1 つにまとめる方が良いことが多いです。
Q: Inspector で変更しても再生時に反映されない
A: 再生中の変更は再生終了時に元に戻る Unity の仕様。再生前に変更、または ScriptableObject に保存。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?