ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Unity スクリプトの基本
Unity のゲームロジックは C# スクリプトとして記述し、ゲームオブジェクト(GameObject)にコンポーネントとして追加することで動作させます。スクリプト 1 つが「振る舞い 1 つ」を表す設計です。
STEP1: 新規スクリプトを作成
Project ウィンドウ(通常は画面下部)で右クリック → Create → C# Script を選択します。

命名規則のポイント:
- パスカルケース(先頭大文字)が Unity の慣例。例:
PlayerController,EnemyAI,GameManager - ファイル名 = クラス名でなければならない。後から変更する場合はクラス名も同時に変える必要がある
- スペース・日本語・記号を入れない(コンパイルエラーの原因)
- 用途が明確に分かる名前を付ける(
Script1等は避ける)
STEP2: スクリプトの初期構造
作成直後のスクリプトは以下のような骨組みになっています:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Debug.Log("PlayerController スタート");
}
// Update is called once per frame
void Update()
{
// 毎フレーム呼ばれる
}
}
| 要素 | 意味 |
|---|---|
MonoBehaviour | Unity のスクリプト基底クラス。これを継承するクラスは GameObject にアタッチ可能 |
Start() | シーン読み込み後、Update より前に 1 回だけ呼ばれる |
Update() | 毎フレーム呼ばれる。FPS が 60 なら 1 秒に 60 回 |
FixedUpdate() | 物理演算用。固定間隔(既定 0.02 秒)で呼ばれる |
Awake() | Start よりも前、GameObject 生成時に呼ばれる |
STEP3: Visual Studio でコードを編集
スクリプトをダブルクリックすると Visual Studio(Windows)/ Visual Studio for Mac / Rider などが起動します。IntelliSense(自動補完)で快適に編集できます。

Visual Studio が起動しない場合は、Unity の Edit → Preferences → External Tools → External Script Editor で IDE を指定します。
STEP4: GameObject にアタッチ
スクリプトを実際に動かすには、Hierarchy 内の GameObject にアタッチする必要があります。方法は以下のいずれか:
- Project ウィンドウからスクリプトをドラッグして GameObject にドロップ
- GameObject を選択 → Inspector の下部にある 「Add Component」 → スクリプト名で検索
- メニューバー → Component → Scripts → 該当スクリプト

STEP5: public 変数で Inspector 公開
クラスのpublic フィールドは自動的に Inspector に表示され、プログラムを書き換えずにエディタ上で値を調整できます。
using UnityEngine;
public class PlayerController : MonoBehaviour
{
// Inspector に表示される
public float moveSpeed = 5.0f;
public int playerHp = 100;
public string playerName = "Hero";
public GameObject bulletPrefab; // プレハブもドラッグ&ドロップで設定
// private は表示されない([SerializeField] を付けると表示)
[SerializeField] private float jumpPower = 7.0f;
// 完全に非表示にしたい場合
[HideInInspector] public int secretValue;
void Update()
{
// 水平方向の入力(A/D キー、矢印キー、ゲームパッド)
float horizontal = Input.GetAxis("Horizontal");
// Translate で移動(Time.deltaTime でフレームレート非依存)
transform.Translate(Vector3.right * horizontal * moveSpeed * Time.deltaTime);
// スペースキーでログ
if (Input.GetKeyDown(KeyCode.Space))
{
Debug.Log("ジャンプ! Power = " + jumpPower);
}
}
}
STEP6: Play モードで実行
画面上部中央の▶(Play)ボタンをクリックすると、シーンが実行されます。Game ウィンドウで動作確認しながら、Console ウィンドウで Debug.Log() 出力を確認できます。

| ボタン | 動作 |
|---|---|
| ▶ Play | シーンを実行 / 停止 |
| ⏸ Pause | 実行を一時停止(変数を Inspector で確認できる) |
| ⏭ Step | 1 フレームだけ進める(バグ調査に便利) |
重要: Play モード中に Inspector で変更した値は、Play 停止時にすべて元に戻ります。永続化したい変更は必ず Play 停止後に行いましょう。
Debug.Log の使い方
// 通常ログ
Debug.Log("こんにちは");
// 警告(黄色)
Debug.LogWarning("注意: HP が少ない");
// エラー(赤)
Debug.LogError("敵が出現しなかった");
// 変数を含めて出力
Debug.Log($"HP: {playerHp}, Position: {transform.position}");
// 条件付きログ(リリースビルドで自動的に削除)
[System.Diagnostics.Conditional("UNITY_EDITOR")]
void EditorOnlyLog(string msg) { Debug.Log(msg); }
よくあるトラブル
| 症状 | 原因 | 対処 |
|---|---|---|
| スクリプトが動かない | GameObject にアタッチしていない | ドラッグ&ドロップで追加 |
Can't add script | ファイル名とクラス名が不一致 | 名前を揃える |
| Inspector に変数が出ない | private のまま | public か [SerializeField] |
| 動きがフレームレートで変わる | Time.deltaTime 未使用 | 移動量に * Time.deltaTime |
| NullReferenceException | 未参照のフィールド使用 | Awake / Start で GetComponent 等 |
FAQ
Q: スクリプトの名前を変えたい
A: Project でファイル名を変更したら、ファイル内のクラス名も同じ名前に書き換える必要があります。
Q: 1 つのスクリプトを複数の GameObject にアタッチできる?
A: できます。それぞれが独立したインスタンスとして動作し、Inspector の値も個別に持ちます。
Q: Start と Awake の使い分けは?
A: Awake は GameObject 生成直後、Start はその後の最初のフレームの直前。他オブジェクト参照の初期化は Start が安全です。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?