Spec
機能仕様書: Editor制御機能
機能ID: SPEC-3d9b5f4e
作成日: 2025-10-17
ステータス: 完了
入力: Unity Editorのウィンドウ管理、選択操作、タグ・レイヤー管理、ツール/プラグイン管理、メニュー実行
実行フロー (main)
1. 入力からEditor操作要件を解析
→ 操作タイプ(ウィンドウ/選択/タグ/レイヤー/ツール/メニュー)の特定
2. Editor状態の確認
→ 現在のウィンドウ状態、選択オブジェクト、プロジェクト設定を確認
3. Editor操作の実行
→ ウィンドウ: リスト取得、フォーカス、状態取得
→ 選択: オブジェクト選択、クリア、詳細取得
→ タグ/レイヤー: 追加、削除、リスト取得、変換
→ ツール: 有効化、無効化、リスト取得
→ メニュー: メニュー項目実行、利用可能メニュー取得
4. 安全性チェック(メニュー実行時)
→ 危険な操作(削除、クローズ等)の検出と警告
5. 結果の返却
→ 操作結果とEditor状態の更新情報
6. 戻り値: SUCCESS(操作結果情報)
⚡ クイックガイドライン
- ✅ Editorの自動化とAIエージェントによる操作の必要性に焦点
- ❌ 内部的なEditorUIシステムやUnityエディタの実装詳細は避ける
- 👥 ゲーム開発者・テクニカルアーティスト・AIエージェント向けに記述
ユーザーシナリオ&テスト
主要ユーザーストーリー
開発者として、繰り返し作業を自動化するために、Unity Editorの操作をプログラムで制御したい。AIエージェントとして、ユーザーの指示に従ってEditorウィンドウを操作したい。
受け入れシナリオ
- 前提 複数のウィンドウが開いている、実行 ウィンドウリスト取得、結果 全ウィンドウの名前と状態が返される
- 前提 Consoleウィンドウにフォーカスしたい、実行 ウィンドウフォーカス要求、結果 Consoleがアクティブになる
- 前提 特定のGameObjectを選択したい、実行 オブジェクト選択、結果 指定したオブジェクトが選択される
- 前提 新しいタグを追加したい、実行 タグ追加、結果 タグが追加され、リストに表示される
- 前提 カスタムレイヤーを追加したい、実行 レイヤー追加、結果 レイヤーが追加され、インデックスが返される
- 前提 レイヤー名からインデックスを知りたい、実行 レイヤー名で検索、結果 レイヤーインデックスが返される
- 前提 メニュー項目を実行したい、実行 メニューパス指定で実行、結果 メニュー項目が実行される
- 前提 危険なメニュー項目を実行しようとした、実行 安全性チェック、結果 警告が表示され、確認が求められる
エッジケース
- ウィンドウが存在しない場合、フォーカスはどう処理するか? → エラーメッセージと利用可能なウィンドウリストを返す
- 同じタグを追加しようとした場合、どう処理するか? → 既に存在することを通知し、エラーを返す
- レイヤーが満杯(32個)の場合、追加はどう処理するか? → エラーメッセージと既存レイヤーのリストを返す
- 無効なメニューパスを指定した場合、どう処理するか? → エラーメッセージと類似メニューの提案を返す
- 破壊的なメニュー項目を実行した場合、どうなるか? → 安全性チェックで検出し、確認プロンプトを表示
要件
機能要件
- FR-001: ユーザーは現在開いているEditorウィンドウのリストを取得できる必要がある
- FR-002: システムは非表示/最小化されたウィンドウを含めるオプションをサポートする必要がある
- FR-003: ユーザーは特定のウィンドウにフォーカスできる必要がある
- FR-004: ユーザーはウィンドウの状態(フォーカス、位置、サイズ)を取得できる必要がある
- FR-005: ユーザーはGameObjectを選択できる必要がある(単一または複数)
- FR-006: ユーザーは現在の選択をクリアできる必要がある
- FR-007: システムは選択詳細(名前、タイプ、パス)を返すオプションをサポートする必要がある
- FR-008: ユーザーはプロジェクトにタグを追加できる必要がある
- FR-009: ユーザーはタグを削除できる必要がある(予約タグは保護)
- FR-010: ユーザーはすべてのタグのリストを取得できる必要がある
- FR-011: ユーザーはプロジェクトにレイヤーを追加できる必要がある(インデックス0-31)
- FR-012: ユーザーはレイヤーを削除できる必要がある(組み込みレイヤーは保護)
- FR-013: ユーザーはレイヤー名からインデックスを取得できる必要がある
- FR-014: ユーザーはレイヤーインデックスから名前を取得できる必要がある
- FR-015: ユーザーは利用可能なツール/プラグインのリストを取得できる必要がある
- FR-016: ユーザーはツール/プラグインを有効化/無効化できる必要がある
- FR-017: ユーザーはUnityメニュー項目を実行できる必要がある
- FR-018: システムはメニュー実行前に安全性チェックを行う必要がある(デフォルト有効)
- FR-019: ユーザーは安全性チェックを無効化できる必要がある
- FR-020: ユーザーは利用可能なメニュー項目のリストを取得できる必要がある
非機能要件
- NFR-001: ウィンドウ操作は500ms以内に完了する必要がある
- NFR-002: 選択操作は200ms以内に完了する必要がある
- NFR-003: タグ/レイヤー管理は1秒以内に完了する必要がある
- NFR-004: メニュー実行は操作内容に依存するが、コマンド送信は200ms以内に完了する必要がある
- NFR-005: ツール管理は2秒以内に完了する必要がある
主要エンティティ
- EditorWindow: ウィンドウ名、タイプ、フォーカス状態、位置、サイズを含むウィンドウ情報
- SelectionInfo: 選択オブジェクトのパス、名前、タイプ、詳細を含む選択情報
- TagInfo: タグ名、予約フラグを含むタグ情報
- LayerInfo: レイヤー名、インデックス、組み込みフラグを含むレイヤー情報
- ToolInfo: ツール名、カテゴリ、有効状態、バージョンを含むツール情報
- MenuItemInfo: メニューパス、有効状態、ショートカット、危険度を含むメニュー項目情報
レビュー&受け入れチェックリスト
コンテンツ品質
要件完全性
実行ステータス
参考実装
実装ファイル
unity-cli/src/handlers/editor/EditorWindowsManageToolHandler.js
unity-cli/src/handlers/editor/EditorSelectionManageToolHandler.js
unity-cli/src/handlers/editor/EditorTagsManageToolHandler.js
unity-cli/src/handlers/editor/EditorLayersManageToolHandler.js
unity-cli/src/handlers/editor/EditorToolsManageToolHandler.js
unity-cli/src/handlers/menu/MenuItemExecuteToolHandler.js
UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/WindowManagementHandler.cs
UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/SelectionHandler.cs
UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/TagManagementHandler.cs
UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/LayerManagementHandler.cs
UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/ToolManagementHandler.cs
UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/MenuHandler.cs
技術詳細
- UnityEditor.EditorWindowによるウィンドウ管理
- UnityEditor.Selectionによる選択操作
- UnityEditorInternal.InternalEditorUtilityによるタグ管理
- LayerMaskとTagManagerによるレイヤー管理
- UnityEditor.EditorApplicationによるメニュー実行
- メニュー安全性チェック(破壊的操作の検出)
Plan
実装計画: Editor制御機能
機能ID: SPEC-3d9b5f4e | ステータス: 実装完了
概要
本機能は既に実装済みです。このplan.mdは実装完了後に作成されました。
実装状況
- ✅ Phase 0: Research完了
- ✅ Phase 1: Design完了
- ✅ Phase 2: Task planning完了
- ✅ Phase 3: Tasks実装完了
- ✅ Phase 4: 実装完了
- ✅ Phase 5: テスト完了
参考実装
実装詳細については spec.md の「参考実装」セクションを参照してください。
本ドキュメントは実装完了後に作成されました
Tasks
タスク: Editor制御機能
機能ID: SPEC-3d9b5f4e | ステータス: 完了
実装状況
本機能は既に実装済みです。すべてのタスクが完了しています。
完了済みタスク
参考
実装詳細については spec.md および plan.md を参照してください。
本ドキュメントは実装完了後に作成されました
TDD
TODO
Research
TODO
Data Model
TODO
Quickstart
TODO
Contracts
Artifact files under contracts/ are managed in issue comments with contract:<name> entries.
Checklists
Artifact files under checklists/ are managed in issue comments with checklist:<name> entries.
Acceptance Checklist
Spec
機能仕様書: Editor制御機能
機能ID:
SPEC-3d9b5f4e作成日: 2025-10-17
ステータス: 完了
入力: Unity Editorのウィンドウ管理、選択操作、タグ・レイヤー管理、ツール/プラグイン管理、メニュー実行
実行フロー (main)
⚡ クイックガイドライン
ユーザーシナリオ&テスト
主要ユーザーストーリー
開発者として、繰り返し作業を自動化するために、Unity Editorの操作をプログラムで制御したい。AIエージェントとして、ユーザーの指示に従ってEditorウィンドウを操作したい。
受け入れシナリオ
エッジケース
要件
機能要件
非機能要件
主要エンティティ
レビュー&受け入れチェックリスト
コンテンツ品質
要件完全性
実行ステータス
参考実装
実装ファイル
unity-cli/src/handlers/editor/EditorWindowsManageToolHandler.jsunity-cli/src/handlers/editor/EditorSelectionManageToolHandler.jsunity-cli/src/handlers/editor/EditorTagsManageToolHandler.jsunity-cli/src/handlers/editor/EditorLayersManageToolHandler.jsunity-cli/src/handlers/editor/EditorToolsManageToolHandler.jsunity-cli/src/handlers/menu/MenuItemExecuteToolHandler.jsUnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/WindowManagementHandler.csUnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/SelectionHandler.csUnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/TagManagementHandler.csUnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/LayerManagementHandler.csUnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/ToolManagementHandler.csUnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/MenuHandler.cs技術詳細
Plan
実装計画: Editor制御機能
機能ID:
SPEC-3d9b5f4e| ステータス: 実装完了概要
本機能は既に実装済みです。このplan.mdは実装完了後に作成されました。
実装状況
参考実装
実装詳細については
spec.mdの「参考実装」セクションを参照してください。本ドキュメントは実装完了後に作成されました
Tasks
タスク: Editor制御機能
機能ID:
SPEC-3d9b5f4e| ステータス: 完了実装状況
本機能は既に実装済みです。すべてのタスクが完了しています。
完了済みタスク
参考
実装詳細については
spec.mdおよびplan.mdを参照してください。本ドキュメントは実装完了後に作成されました
TDD
TODO
Research
TODO
Data Model
TODO
Quickstart
TODO
Contracts
Artifact files under
contracts/are managed in issue comments withcontract:<name>entries.Checklists
Artifact files under
checklists/are managed in issue comments withchecklist:<name>entries.Acceptance Checklist