ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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 と 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アノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?