この記事でやること
- ChatGPTに修正案の相談とCodex向けの指示プロンプト作成を任せる
- Codexに指示プロンプトを投入→自動実装→Pull Request作成
- GitHubでPRをレビュー&マージ
- ローカルPCでpull → Unityで再生で動作確認
前提(環境・準備)
- GitHub リポジトリ(main / develop などのブランチ運用)
- Codex(コード自動編集・PR作成が可能なアシスタント)
- ChatGPT(要件整理・設計・指示プロンプト生成)
- Unity(本記事では Unity 6 系を想定)
- ローカルに git / Unity Editor がインストール済み
全体フロー(ざっくり)
[ChatGPT] 仕様・修正案を対話で詰める
↓
[ChatGPT] Codex向け「構造化プロンプト」を生成
↓
[Codex] プロンプトを実行して変更・PR作成
↓
[GitHub] PRレビュー → マージ
↓
[Local] git pull → Unity再生で動作確認
手順①:ChatGPTに修正案を提案してもらう
目的:何を、なぜ、どこに、どう直すかを明確化。
ポイント:制約・成功条件・検証方法まで書き切ると、Codexでの実装が安定。
サンプル質問(ChatGPTへ)
FUnityの「フーニーのふわふわアニメーション」で、UI ToolkitのAPI差異でエラーが起きています。
Unity 6000.0.58f2に合わせた安定実装と、ループ再生の仕組みを提案してください。
前提: IValueAnimationは非ジェネリック、onAnimationCompletedは不可。schedule.Executeで再起動したい。
成功条件: コンパイル成功、Playで上下にふわふわ動く、警告なし。
手順②:ChatGPTに「Codexへの指示プロンプト」を作ってもらう
目的:Codexがそのまま実行できる構造化プロンプトを作る。
含めるべき情報
- 対象/生成ファイルのフルパス
- 変更内容(差分の要旨)と必須仕様
- API・引数・型の注意点
- 成功条件と検証手順
- 出力フォーマット指示(完全コード、英語コメント 等)
指示プロンプトのテンプレ(コピペOK)
# 🧠 Codex Instruction(構造化プロンプト)
## 🎯 タスク概要
(何を、なぜ、どう直すか。背景・制約を含め簡潔に)
## 📁 対象/生成ファイル
(フルパスで列挙)
## ⚙️ 実装要件
- (必須仕様1)
- (必須仕様2)
- (API/型の注意点)
## 🔧 実装例(参考/擬似コード)
(短い補助スニペット)
## ✅ 成功条件
- (ビルド成功、警告なし 等)
- (ランタイムの見た目/挙動)
## 🧪 検証手順
1) (Unityでの操作、ログメッセージ等)
2) (PRレビュー観点)
## 📝 出力フォーマット指示
> すべての対象ファイルを**完全な内容**で出力。
> コメントは英語で簡潔に。
> パスと名前空間は既存構成に合わせる。
手順③:Codexで指示プロンプトを実行
- プロンプトを貼り付けてそのまま実行
- 出力が差分ではなく“ファイル全文”になっているか確認
- 生成・変更ファイルのパスや名前空間のズレがないかチェック
うまくいかない時のコツ
- エラーメッセージをそのままコピペし、ChatGPTに最小修正の指示プロンプトを作らせる
- asmdefエラーは、どのアセンブリ→どれを参照すべきかを明記
手順④:CodexからPull Requestを生成
- ブランチ名・PRタイトル・説明(要点/変更点/検証方法)までCodexに書かせるとレビューが楽
PR本文テンプレ
## Summary
- Fix floating animation using non-generic IValueAnimation
- Replace onAnimationCompleted with schedule.Execute loop
## Changes
- Runtime/UI/FooniElement.cs: StartFloatingAnimation() を Action<VisualElement,float> で実装
- Editor/...: asmdef references updated
## How to test
1. Open FUnitySample scene
2. Run menu: FUnity → Fix → Rebind FUnity UI Initializer
3. Play: Fooni floats up and down smoothly (3s period, ±10px)
## Notes
- Unity 6000.0.58f2
- No warnings, no errors
手順⑤:GitHubでマージしてコミット
- 通常のコードレビューと同じ
- 命名/責務/参照関係(asmdef)を重点チェック
- サンプルシーンでMissing(MonoBehaviour) が出る変更なら、修復メニューをPRに含めると親切
手順⑥:ローカルPCで修正をPull
git checkout main
git pull origin main
git log -1
git status
手順⑦:Unityエディターで再生して動作確認
- 必要なら修復メニューを実行(例:
FUnity/Fix/Rebind FUnity UI Initializer
) - Consoleログの成功メッセージや警告なしを確認
- シーンを再生して挙動を見る(例:フーニーが±10px/3s周期でふわふわ)
失敗しやすいポイントと対処(FAQ)
症状 | 代表原因 | 対処 |
---|---|---|
CS0246 型が見つからない | asmdef 参照不足 | どのasmdefからどれを参照すべきかを明文化してプロンプトに書く |
CS0308 ジェネリック誤用 | IValueAnimation<float> など | 非ジェネリックとして宣言。Start()の第3引数はミリ秒(int)、第4引数はAction |
CS1061 メンバが無い | API差異 | 代替:onAnimationCompleted →schedule.Execute(...).StartingIn(...) |
Missing(MonoBehaviour) | GUID/アセンブリ変更 | Rebind用Editorメニューを用意(シーン自動修復) |
画像が出ない | Resources/パス相違 | Editorユーティリティで自動コピー(Art→Resources)を用意すると安定 |
「いい指示プロンプト」にするチェックリスト
- [ ] 対象ファイルのフルパスを書いたか
- [ ] アセンブリ参照(asmdef)の有無・必要な参照先を明記したか
- [ ] APIの罠(引数型、世代差)を具体的に書いたか
- [ ] 成功条件(ビルド/実行/ログ)を列挙したか
- [ ] 検証手順を番号付きで書いたか
- [ ] 出力形式(完全コード、英語コメント)を指示したか
まとめ
- ChatGPTは仕様・設計・指示プロンプト作成に最適、Codexは自動実装~PR化が得意。
- 「何を、どこに、どう直し、どう確認するか」を構造化プロンプトで渡すと失敗が激減。
- asmdefやUnity APIの差異などハマり所は、明文化してプロンプトに含めるのがコツ。
本記事はFUnityの事例をベースにしていますが、Unity以外のプロジェクト(Web/Server/ML)にも応用可能です。
コメント