Unity Rapid Proto by juliankerignard/unity-skills
npx skills add https://github.com/juliankerignard/unity-skills --skill 'Unity Rapid Proto'将原始的游戏玩法想法转化为可玩的 Unity 原型。无需游戏设计文档,无需规划,无需架构。我们直接编写用于测试核心机制的最简代码。
产出:
Assets/Prototypes/ 文件夹(如果不存在将会创建)Type de prototype ?
|
+-- 3D gameplay ?
| +-- Deplacement + exploration --> Template 3D Platformer
| +-- Tir / combat --> Template FPS
| +-- Placement strategique --> Template Tower Defense
| +-- Course automatique --> Template Runner / Endless
|
+-- 2D gameplay ?
| +-- Deplacement top-down --> Template Top-Down 2D
| +-- Puzzle / grille --> Template Puzzle (grid-based)
| +-- Platformer 2D --> Adapter Template 3D Platformer en 2D
|
+-- Pas sur ?
+-- Commencer en 3D (plus visuel, plus facile a debloquer)
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
要求用户最多用 1-2 句话描述其想法。不要询问额外细节。不要生成设计文档。
提取:
选择唯一一个要原型化的机制。如果想法包含多个机制,选择定义主要游戏循环的那个。
简化示例:
典型结构:
PlayerController.cs : 移动 + 主要动作(最多 80 行)代码规则:
- MonoBehaviour uniquement, pas de ScriptableObject
- Input.GetKey / Input.GetAxis (ancien systeme, plus simple)
- Valeurs hardcodees (pas de SerializeField sauf si vraiment utile)
- Visuels = primitives Unity (Cube, Sphere, Capsule, Plane)
- Pas de namespace, pas de pattern, pas d'event system
- Un seul fichier = une seule responsabilite evidente
- 1 commentaire par bloc non-evident, pas plus
注意 Input System (Unity 6+) : 如果项目使用 New Input System(Unity 6 的默认设置),替换
Input.*调用:
Input.GetKey(KeyCode.Space)→Keyboard.current[Key.Space].isPressedInput.GetKeyDown(KeyCode.Space)→Keyboard.current[Key.Space].wasPressedThisFrameInput.GetAxis("Horizontal")→Gamepad.current.leftStick.x.ReadValue()ou InputActionInput.GetMouseButton(0)→Mouse.current.leftButton.isPressed
对于快速原型,旧的 Input Manager 更简单。检查
Edit > Project Settings > Player > Active Input Handling。
按此确切顺序提供:
格式:
## Setup Scene
1. Creer un objet **Player** : Capsule a position (0, 1, 0)
- Ajouter `PlayerController.cs`
- Ajouter Rigidbody (Use Gravity: true, Freeze Rotation X/Z)
2. Creer un objet **Ground** : Plane a position (0, 0, 0), scale (5, 1, 5)
- Tag: "Ground"
列出按下 Play 键后应确切发生的事情:
## Test checklist
- [ ] Le joueur se deplace avec WASD/fleches
- [ ] Le joueur saute avec Space et retombe
- [ ] Les ennemis apparaissent toutes les 3 secondes
- [ ] Le score augmente quand on touche un ennemi
- [ ] Game Over s'affiche quand la vie atteint 0
references/proto-templates.md 中有 6 个预配置模板:
| 类型 | 脚本 | 关键对象 |
|---|---|---|
| 3D Platformer | PlayerController + MovingPlatform | Capsule + CharacterController, Planes, Cubes |
| FPS | FPSController + EnemyHealth + Spawner | Capsule + Camera enfant, Cubes rouges |
| Top-Down 2D | PlayerMovement2D + Bullet + EnemyPatrol2D | Sprites, Rigidbody2D, Camera ortho |
| Puzzle (grid) | GridManager + Tile | Quads generes, UI Text victoire |
| Runner / Endless | RunnerPlayer + ObstacleSpawner + ScoreManager | Capsule auto-avance, 3 lanes |
| Tower Defense | Turret + EnemyPath + TurretPlacer | Waypoints, OverlapSphere, InvokeRepeating |
始终:
Input.GetKey / Input.GetAxis(旧输入系统)Assets/Prototypes/<NomPrototype>/ 中绝不:
/unity-code-gen(Unity Code Gen)以正确的模式进行重构/unity-debug(Unity Debug)/shader(Unity Shader Generator)/2d(Unity 2D)获取详细模式| 问题 | 解决方案 |
|---|---|
| 玩家不移动 | 检查脚本是否附加到正确的 GameObject。检查 CharacterController 或 Rigidbody 是否存在。 |
| 玩家穿过地面掉落 | 检查地面是否有 Collider。检查玩家是否有 Collider + Rigidbody(或 CharacterController)。 |
| 跳跃不工作 | 检查地面检测:射线投射应指向 Vector3.down,距离略大于玩家高度的一半。 |
| 碰撞未检测到 | 检查两个对象中至少有一个具有 Rigidbody。如果使用 OnTriggerEnter,Collider 必须标记为 "Is Trigger"。 |
| 摄像机抖动 | 将摄像机逻辑移至 LateUpdate 而非 Update。 |
| 敌人未出现 | 检查预制体是否已分配,或 Instantiate 是否使用了正确的引用。检查 InvokeRepeating 是否在 Start 中被调用。 |
| 分数未显示 | 检查对 Text 或 TextMeshProUGUI 的引用。检查 Canvas 是否有 EventSystem。 |
| 原型运行太慢 | 删除 Update 中的 Debug.Log。检查是否未进行大量 Instantiate/Destroy(必要时切换到基本对象池)。 |
每周安装量
–
代码仓库
GitHub 星标数
3
首次出现
–
安全审计
Transforme une idee de gameplay brute en prototype jouable Unity. Pas de GDD, pas de planning, pas d'architecture. On va droit au code minimum pour tester la mechanique.
Produit :
Assets/Prototypes/ (sera cree si absent)Type de prototype ?
|
+-- 3D gameplay ?
| +-- Deplacement + exploration --> Template 3D Platformer
| +-- Tir / combat --> Template FPS
| +-- Placement strategique --> Template Tower Defense
| +-- Course automatique --> Template Runner / Endless
|
+-- 2D gameplay ?
| +-- Deplacement top-down --> Template Top-Down 2D
| +-- Puzzle / grille --> Template Puzzle (grid-based)
| +-- Platformer 2D --> Adapter Template 3D Platformer en 2D
|
+-- Pas sur ?
+-- Commencer en 3D (plus visuel, plus facile a debloquer)
Demander a l'utilisateur de decrire son idee en 1-2 phrases maximum. Ne PAS demander de details supplementaires. Ne PAS produire de document de design.
Extraire :
Choisir UNE seule mechanique a prototyper. Si l'idee contient plusieurs mecaniques, prendre celle qui definit le gameplay loop principal.
Exemples de reduction :
Structure type :
PlayerController.cs : mouvement + action principale (max 80 lignes)Regles de code :
- MonoBehaviour uniquement, pas de ScriptableObject
- Input.GetKey / Input.GetAxis (ancien systeme, plus simple)
- Valeurs hardcodees (pas de SerializeField sauf si vraiment utile)
- Visuels = primitives Unity (Cube, Sphere, Capsule, Plane)
- Pas de namespace, pas de pattern, pas d'event system
- Un seul fichier = une seule responsabilite evidente
- 1 commentaire par bloc non-evident, pas plus
Note Input System (Unity 6+) : Si le projet utilise le New Input System (defaut dans Unity 6), remplacer les appels
Input.*:
Input.GetKey(KeyCode.Space)→Keyboard.current[Key.Space].isPressedInput.GetKeyDown(KeyCode.Space)→Keyboard.current[Key.Space].wasPressedThisFrameInput.GetAxis("Horizontal")→Gamepad.current.leftStick.x.ReadValue()ou InputActionInput.GetMouseButton(0)→Mouse.current.leftButton.isPressed
Pour un prototype rapide, le old Input Manager reste plus simple. Verifier
Edit > Project Settings > Player > Active Input Handling.
Fournir dans cet ordre exact :
Format :
## Setup Scene
1. Creer un objet **Player** : Capsule a position (0, 1, 0)
- Ajouter `PlayerController.cs`
- Ajouter Rigidbody (Use Gravity: true, Freeze Rotation X/Z)
2. Creer un objet **Ground** : Plane a position (0, 0, 0), scale (5, 1, 5)
- Tag: "Ground"
Lister exactement ce qui doit se passer quand on appuie sur Play :
## Test checklist
- [ ] Le joueur se deplace avec WASD/fleches
- [ ] Le joueur saute avec Space et retombe
- [ ] Les ennemis apparaissent toutes les 3 secondes
- [ ] Le score augmente quand on touche un ennemi
- [ ] Game Over s'affiche quand la vie atteint 0
6 templates pre-configures dans references/proto-templates.md :
| Genre | Scripts | Objets cles |
|---|---|---|
| 3D Platformer | PlayerController + MovingPlatform | Capsule + CharacterController, Planes, Cubes |
| FPS | FPSController + EnemyHealth + Spawner | Capsule + Camera enfant, Cubes rouges |
| Top-Down 2D | PlayerMovement2D + Bullet + EnemyPatrol2D | Sprites, Rigidbody2D, Camera ortho |
| Puzzle (grid) | GridManager + Tile | Quads generes, UI Text victoire |
| Runner / Endless | RunnerPlayer + ObstacleSpawner + ScoreManager | Capsule auto-avance, 3 lanes |
| Tower Defense | Turret + EnemyPath + TurretPlacer | Waypoints, OverlapSphere, InvokeRepeating |
TOUJOURS :
Input.GetKey / Input.GetAxis (ancien input system)Assets/Prototypes/<NomPrototype>/JAMAIS :
/unity-code-gen (Unity Code Gen) pour restructurer avec les bons patterns/unity-debug (Unity Debug)/shader (Unity Shader Generator)/2d (Unity 2D) pour les patterns detailles| Probleme | Solution |
|---|---|
| Le joueur ne bouge pas | Verifier que le script est attache au bon GameObject. Verifier que CharacterController ou Rigidbody est present. |
| Le joueur tombe a travers le sol | Verifier que le sol a un Collider. Verifier que le joueur a un Collider + Rigidbody (ou CharacterController). |
| Le saut ne fonctionne pas | Verifier le ground check : le raycast doit pointer vers Vector3.down avec une distance legerement superieure a la moitie de la hauteur du joueur. |
| Les collisions ne detectent pas | Verifier qu'au moins un des deux objets a un Rigidbody. Si on utilise OnTriggerEnter, le Collider doit etre marque "Is Trigger". |
| La camera tremble | Deplacer la logique camera dans LateUpdate au lieu de . |
Weekly Installs
–
Repository
GitHub Stars
3
First Seen
–
Security Audits
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
109,600 周安装
Agently Tools 工具系统详解:Python 代理工具注册、循环控制与内置工具使用
1 周安装
Agently Prompt配置文件技能:YAML/JSON提示模板加载、映射与导出指南
1 周安装
iOS/Android推送通知设置指南:Firebase Cloud Messaging与React Native实现
212 周安装
Agently Playbook:AI智能体开发顶层设计指南与场景路由决策框架
1 周安装
Zig 语言最佳实践指南:类型优先开发、模块结构与核心指令
212 周安装
Agently输出控制:结构化JSON输出、流式传输与可靠性控制指南
1 周安装
Update| Les ennemis n'apparaissent pas | Verifier que le prefab est assigne ou que Instantiate utilise le bon reference. Verifier que InvokeRepeating est appele dans Start. |
| Le score ne s'affiche pas | Verifier la reference au Text ou TextMeshProUGUI. Verifier que le Canvas a un EventSystem. |
| Le prototype est trop lent | Supprimer les Debug.Log dans Update. Verifier qu'on ne fait pas d'Instantiate/Destroy massif (passer a un pool basique si necessaire). |