@su-record/vibe 2.4.71 → 2.4.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +216 -215
- package/README.md +4 -4
- package/agents/research/best-practices-agent.md +13 -13
- package/agents/research/codebase-patterns-agent.md +33 -33
- package/agents/research/framework-docs-agent.md +23 -23
- package/agents/research/security-advisory-agent.md +29 -29
- package/agents/review/architecture-reviewer.md +31 -31
- package/agents/review/complexity-reviewer.md +21 -21
- package/agents/review/data-integrity-reviewer.md +29 -29
- package/agents/review/git-history-reviewer.md +24 -24
- package/agents/review/performance-reviewer.md +29 -29
- package/agents/review/python-reviewer.md +53 -53
- package/agents/review/rails-reviewer.md +40 -40
- package/agents/review/react-reviewer.md +40 -40
- package/agents/review/security-reviewer.md +29 -29
- package/agents/review/simplicity-reviewer.md +24 -24
- package/agents/review/test-coverage-reviewer.md +31 -31
- package/agents/review/typescript-reviewer.md +41 -41
- package/commands/vibe.analyze.md +103 -7
- package/commands/vibe.reason.md +106 -0
- package/commands/vibe.review.md +123 -38
- package/commands/vibe.run.md +286 -221
- package/commands/vibe.spec.md +293 -173
- package/commands/vibe.utils.md +104 -3
- package/commands/vibe.verify.md +179 -86
- package/dist/cli/detect.js +40 -40
- package/dist/cli/detect.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/llm.js +5 -5
- package/dist/cli/llm.js.map +1 -1
- package/dist/cli/setup.js +3 -3
- package/dist/cli/setup.js.map +1 -1
- package/dist/lib/ContextCompressor.js +1 -1
- package/dist/lib/ContextCompressor.js.map +1 -1
- package/dist/lib/gemini-api.js +12 -12
- package/dist/lib/gemini-api.js.map +1 -1
- package/dist/lib/gemini-oauth.js +22 -22
- package/dist/lib/gemini-oauth.js.map +1 -1
- package/dist/lib/gemini-storage.js +3 -3
- package/dist/lib/gemini-storage.js.map +1 -1
- package/dist/lib/gpt-api.js +11 -11
- package/dist/lib/gpt-api.js.map +1 -1
- package/dist/lib/gpt-oauth.js +28 -28
- package/dist/lib/gpt-oauth.js.map +1 -1
- package/dist/lib/gpt-storage.js +3 -3
- package/dist/lib/gpt-storage.js.map +1 -1
- package/dist/orchestrator/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.js +4 -6
- package/dist/orchestrator/orchestrator.js.map +1 -1
- package/dist/tools/convention/analyzeComplexity.js +3 -3
- package/dist/tools/convention/analyzeComplexity.js.map +1 -1
- package/dist/tools/convention/applyQualityRules.js +1 -1
- package/dist/tools/convention/applyQualityRules.js.map +1 -1
- package/dist/tools/convention/checkCouplingCohesion.js +2 -2
- package/dist/tools/convention/checkCouplingCohesion.js.map +1 -1
- package/dist/tools/convention/suggestImprovements.js +1 -1
- package/dist/tools/convention/suggestImprovements.js.map +1 -1
- package/dist/tools/convention/validateCodeQuality.js +1 -1
- package/dist/tools/convention/validateCodeQuality.js.map +1 -1
- package/dist/tools/memory/autoSaveContext.js +1 -1
- package/dist/tools/memory/autoSaveContext.js.map +1 -1
- package/dist/tools/memory/createMemoryTimeline.js +27 -27
- package/dist/tools/memory/createMemoryTimeline.js.map +1 -1
- package/dist/tools/memory/deleteMemory.js +1 -1
- package/dist/tools/memory/deleteMemory.js.map +1 -1
- package/dist/tools/memory/getMemoryGraph.js +24 -24
- package/dist/tools/memory/getMemoryGraph.js.map +1 -1
- package/dist/tools/memory/getSessionContext.js +36 -36
- package/dist/tools/memory/getSessionContext.js.map +1 -1
- package/dist/tools/memory/linkMemories.js +21 -21
- package/dist/tools/memory/linkMemories.js.map +1 -1
- package/dist/tools/memory/prioritizeMemory.js +1 -1
- package/dist/tools/memory/prioritizeMemory.js.map +1 -1
- package/dist/tools/memory/restoreSessionContext.js +1 -1
- package/dist/tools/memory/restoreSessionContext.js.map +1 -1
- package/dist/tools/memory/searchMemories.js +1 -1
- package/dist/tools/memory/searchMemories.js.map +1 -1
- package/dist/tools/memory/searchMemoriesAdvanced.js +42 -42
- package/dist/tools/memory/searchMemoriesAdvanced.js.map +1 -1
- package/dist/tools/memory/startSession.js +2 -2
- package/dist/tools/memory/startSession.js.map +1 -1
- package/dist/tools/memory/updateMemory.js +1 -1
- package/dist/tools/memory/updateMemory.js.map +1 -1
- package/dist/tools/semantic/analyzeDependencyGraph.js +38 -38
- package/dist/tools/semantic/analyzeDependencyGraph.js.map +1 -1
- package/dist/tools/semantic/findReferences.js +1 -1
- package/dist/tools/semantic/findReferences.js.map +1 -1
- package/dist/tools/semantic/findSymbol.js +1 -1
- package/dist/tools/semantic/findSymbol.js.map +1 -1
- package/dist/tools/time/getCurrentTime.js +1 -1
- package/dist/tools/time/getCurrentTime.js.map +1 -1
- package/dist/tools/ui/previewUiAscii.js +2 -2
- package/dist/tools/ui/previewUiAscii.js.map +1 -1
- package/hooks/hooks.json +11 -2
- package/hooks/scripts/llm-orchestrate.js +1 -1
- package/hooks/scripts/utils.js +31 -6
- package/languages/csharp-unity.md +82 -83
- package/languages/dart-flutter.md +89 -88
- package/languages/go.md +76 -75
- package/languages/java-spring.md +85 -84
- package/languages/kotlin-android.md +64 -63
- package/languages/python-django.md +83 -82
- package/languages/python-fastapi.md +82 -81
- package/languages/rust.md +75 -74
- package/languages/swift-ios.md +73 -72
- package/languages/typescript-electron.md +70 -71
- package/languages/typescript-nextjs.md +93 -92
- package/languages/typescript-node.md +64 -63
- package/languages/typescript-nuxt.md +113 -112
- package/languages/typescript-react-native.md +82 -81
- package/languages/typescript-react.md +76 -75
- package/languages/typescript-tauri.md +74 -75
- package/languages/typescript-vue.md +73 -72
- package/package.json +1 -1
- package/skills/git-worktree.md +25 -25
- package/skills/multi-llm-orchestration.md +4 -6
- package/skills/priority-todos.md +39 -39
- package/skills/vibe-capabilities.md +2 -2
- package/vibe/config.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// UI Preview tool - ASCII art visualization before development
|
|
2
2
|
export const previewUiAsciiDefinition = {
|
|
3
3
|
name: 'preview_ui_ascii',
|
|
4
|
-
description: '
|
|
4
|
+
description: 'create page|build UI|design component|make page|develop page|layout|screen design - Preview UI before coding',
|
|
5
5
|
inputSchema: {
|
|
6
6
|
type: 'object',
|
|
7
7
|
properties: {
|
|
@@ -223,7 +223,7 @@ export async function previewUiAscii(args) {
|
|
|
223
223
|
ascii_preview: preview.join('\n'),
|
|
224
224
|
mobile_preview: responsive ? mobilePreview : null,
|
|
225
225
|
components_count: components.length,
|
|
226
|
-
message: '✅
|
|
226
|
+
message: '✅ Proceed with this layout? Approve to start code generation.',
|
|
227
227
|
action: 'preview_ui_ascii',
|
|
228
228
|
status: 'awaiting_confirmation'
|
|
229
229
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"previewUiAscii.js","sourceRoot":"","sources":["../../../src/tools/ui/previewUiAscii.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"previewUiAscii.js","sourceRoot":"","sources":["../../../src/tools/ui/previewUiAscii.ts"],"names":[],"mappings":"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"}
|
package/hooks/hooks.json
CHANGED
|
@@ -38,6 +38,15 @@
|
|
|
38
38
|
}
|
|
39
39
|
],
|
|
40
40
|
"UserPromptSubmit": [
|
|
41
|
+
{
|
|
42
|
+
"matcher": ".*",
|
|
43
|
+
"hooks": [
|
|
44
|
+
{
|
|
45
|
+
"type": "command",
|
|
46
|
+
"command": "echo '[INTERRUPT RULE] If this message follows a user interrupt (Ctrl+C/Escape), the previous task is CANCELLED. Do NOT resume interrupted work. Respond ONLY to this new message.'"
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
41
50
|
{
|
|
42
51
|
"matcher": "ultrawork|ulw|울트라워크",
|
|
43
52
|
"hooks": [
|
|
@@ -84,7 +93,7 @@
|
|
|
84
93
|
]
|
|
85
94
|
},
|
|
86
95
|
{
|
|
87
|
-
"matcher": "뭐였지|기억|recall
|
|
96
|
+
"matcher": "뭐였지|기억|recall|이전에.*결정|저번에|previous.*decision|what was",
|
|
88
97
|
"hooks": [
|
|
89
98
|
{
|
|
90
99
|
"type": "command",
|
|
@@ -93,7 +102,7 @@
|
|
|
93
102
|
]
|
|
94
103
|
},
|
|
95
104
|
{
|
|
96
|
-
"matcher": "아키텍처|architecture|설계.*검토|design.*review
|
|
105
|
+
"matcher": "아키텍처|architecture|설계.*검토|design.*review|구조.*분석|structure.*analysis",
|
|
97
106
|
"hooks": [
|
|
98
107
|
{
|
|
99
108
|
"type": "command",
|
|
@@ -153,7 +153,7 @@ async function main() {
|
|
|
153
153
|
const result = await callWithRetry(currentProvider, cleanPrompt, systemPrompt, jsonMode);
|
|
154
154
|
|
|
155
155
|
if (result.success) {
|
|
156
|
-
console.log(`${label}
|
|
156
|
+
console.log(`${label} response: ${result.result}`);
|
|
157
157
|
return;
|
|
158
158
|
}
|
|
159
159
|
|
package/hooks/scripts/utils.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import fs from 'fs';
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import { fileURLToPath } from 'url';
|
|
7
|
+
import { execSync } from 'child_process';
|
|
7
8
|
|
|
8
9
|
// 스크립트 위치에서 VIBE_PATH 자동 감지
|
|
9
10
|
// hooks/scripts/utils.js → hooks → VIBE_PATH
|
|
@@ -13,28 +14,52 @@ const DETECTED_VIBE_PATH = path.resolve(__dirname, '..', '..');
|
|
|
13
14
|
export const VIBE_PATH = process.env.VIBE_PATH || DETECTED_VIBE_PATH;
|
|
14
15
|
export const PROJECT_DIR = process.env.CLAUDE_PROJECT_DIR || '.';
|
|
15
16
|
|
|
17
|
+
// 전역 npm 경로 캐시
|
|
18
|
+
let _globalNpmPath = null;
|
|
19
|
+
function getGlobalNpmPath() {
|
|
20
|
+
if (_globalNpmPath === null) {
|
|
21
|
+
try {
|
|
22
|
+
_globalNpmPath = execSync('npm root -g', { encoding: 'utf8' }).trim();
|
|
23
|
+
} catch {
|
|
24
|
+
// Windows 기본 경로
|
|
25
|
+
_globalNpmPath = path.join(process.env.APPDATA || '', 'npm', 'node_modules');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return _globalNpmPath;
|
|
29
|
+
}
|
|
30
|
+
|
|
16
31
|
/**
|
|
17
32
|
* 로컬 개발 환경 vs 설치된 패키지 환경 자동 감지하여 tools 경로 반환
|
|
33
|
+
* 우선순위: 로컬 빌드 → 전역 npm
|
|
18
34
|
*/
|
|
19
35
|
export function getToolsBaseUrl() {
|
|
20
36
|
const localDist = path.join(VIBE_PATH, 'dist', 'tools');
|
|
21
|
-
const
|
|
37
|
+
const globalPackage = path.join(getGlobalNpmPath(), '@su-record', 'vibe', 'dist', 'tools');
|
|
22
38
|
|
|
23
|
-
|
|
39
|
+
// 1. 로컬 빌드된 파일 확인 (개발 환경)
|
|
40
|
+
const localIndex = path.join(localDist, 'index.js');
|
|
41
|
+
if (fs.existsSync(localIndex)) {
|
|
24
42
|
return `file:///${localDist.replace(/\\/g, '/')}/`;
|
|
25
43
|
}
|
|
26
|
-
|
|
44
|
+
|
|
45
|
+
// 2. 전역 npm 패키지 (설치된 환경)
|
|
46
|
+
return `file:///${globalPackage.replace(/\\/g, '/')}/`;
|
|
27
47
|
}
|
|
28
48
|
|
|
29
49
|
/**
|
|
30
50
|
* lib 경로 반환 (gpt-api, gemini-api 등)
|
|
51
|
+
* 우선순위: 로컬 빌드 → 전역 npm
|
|
31
52
|
*/
|
|
32
53
|
export function getLibBaseUrl() {
|
|
33
54
|
const localDist = path.join(VIBE_PATH, 'dist', 'lib');
|
|
34
|
-
const
|
|
55
|
+
const globalPackage = path.join(getGlobalNpmPath(), '@su-record', 'vibe', 'dist', 'lib');
|
|
35
56
|
|
|
36
|
-
|
|
57
|
+
// 1. 로컬 빌드된 파일 확인 (개발 환경)
|
|
58
|
+
const localGptApi = path.join(localDist, 'gpt-api.js');
|
|
59
|
+
if (fs.existsSync(localGptApi)) {
|
|
37
60
|
return `file:///${localDist.replace(/\\/g, '/')}/`;
|
|
38
61
|
}
|
|
39
|
-
|
|
62
|
+
|
|
63
|
+
// 2. 전역 npm 패키지 (설치된 환경)
|
|
64
|
+
return `file:///${globalPackage.replace(/\\/g, '/')}/`;
|
|
40
65
|
}
|
|
@@ -1,38 +1,37 @@
|
|
|
1
|
-
#
|
|
1
|
+
# C# + Unity Quality Rules
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Core Principles (inherited from core)
|
|
4
4
|
|
|
5
5
|
```markdown
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
# Core Principles (inherited from core)
|
|
7
|
+
Single Responsibility (SRP)
|
|
8
|
+
No Duplication (DRY)
|
|
9
|
+
Reusability
|
|
10
|
+
Low Complexity
|
|
11
|
+
Function <= 30 lines
|
|
12
|
+
Nesting <= 3 levels
|
|
13
|
+
Cyclomatic complexity <= 10
|
|
13
14
|
```
|
|
14
15
|
|
|
15
|
-
## Unity
|
|
16
|
+
## Unity Architecture Understanding
|
|
16
17
|
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
│ - 게임 로직, 유틸리티 │
|
|
27
|
-
└─────────────────────────────────────────────┘
|
|
18
|
+
```text
|
|
19
|
+
MonoBehaviour Lifecycle
|
|
20
|
+
Awake -> OnEnable -> Start -> Update -> ...
|
|
21
|
+
|
|
22
|
+
ScriptableObject (Data Assets)
|
|
23
|
+
- Settings, Events, Shared Data
|
|
24
|
+
|
|
25
|
+
Pure C# Classes (Non-MonoBehaviour)
|
|
26
|
+
- Game Logic, Utilities
|
|
28
27
|
```
|
|
29
28
|
|
|
30
|
-
## C#/Unity
|
|
29
|
+
## C#/Unity Specific Rules
|
|
31
30
|
|
|
32
|
-
### 1. MonoBehaviour
|
|
31
|
+
### 1. Minimize MonoBehaviour
|
|
33
32
|
|
|
34
33
|
```csharp
|
|
35
|
-
//
|
|
34
|
+
// Bad: All logic in MonoBehaviour
|
|
36
35
|
public class PlayerController : MonoBehaviour
|
|
37
36
|
{
|
|
38
37
|
public float health;
|
|
@@ -41,12 +40,12 @@ public class PlayerController : MonoBehaviour
|
|
|
41
40
|
|
|
42
41
|
void Update()
|
|
43
42
|
{
|
|
44
|
-
//
|
|
45
|
-
//
|
|
43
|
+
// Movement, combat, inventory, UI update all here...
|
|
44
|
+
// Hundreds of lines of code
|
|
46
45
|
}
|
|
47
46
|
}
|
|
48
47
|
|
|
49
|
-
//
|
|
48
|
+
// Good: Separation of concerns
|
|
50
49
|
public class PlayerController : MonoBehaviour
|
|
51
50
|
{
|
|
52
51
|
[SerializeField] private PlayerData _data;
|
|
@@ -66,7 +65,7 @@ public class PlayerController : MonoBehaviour
|
|
|
66
65
|
}
|
|
67
66
|
}
|
|
68
67
|
|
|
69
|
-
// Pure C#
|
|
68
|
+
// Pure C# class
|
|
70
69
|
public class PlayerMovement
|
|
71
70
|
{
|
|
72
71
|
private readonly PlayerData _data;
|
|
@@ -80,15 +79,15 @@ public class PlayerMovement
|
|
|
80
79
|
|
|
81
80
|
public void Update(float deltaTime)
|
|
82
81
|
{
|
|
83
|
-
//
|
|
82
|
+
// Movement logic only
|
|
84
83
|
}
|
|
85
84
|
}
|
|
86
85
|
```
|
|
87
86
|
|
|
88
|
-
### 2. ScriptableObject
|
|
87
|
+
### 2. Using ScriptableObject
|
|
89
88
|
|
|
90
89
|
```csharp
|
|
91
|
-
//
|
|
90
|
+
// Good: Data Asset
|
|
92
91
|
[CreateAssetMenu(fileName = "PlayerData", menuName = "Game/PlayerData")]
|
|
93
92
|
public class PlayerData : ScriptableObject
|
|
94
93
|
{
|
|
@@ -101,7 +100,7 @@ public class PlayerData : ScriptableObject
|
|
|
101
100
|
public float attackRange = 2f;
|
|
102
101
|
}
|
|
103
102
|
|
|
104
|
-
//
|
|
103
|
+
// Good: Event Channel
|
|
105
104
|
[CreateAssetMenu(fileName = "GameEvent", menuName = "Events/GameEvent")]
|
|
106
105
|
public class GameEvent : ScriptableObject
|
|
107
106
|
{
|
|
@@ -125,10 +124,10 @@ public interface IGameEventListener
|
|
|
125
124
|
}
|
|
126
125
|
```
|
|
127
126
|
|
|
128
|
-
### 3.
|
|
127
|
+
### 3. Object Pooling
|
|
129
128
|
|
|
130
129
|
```csharp
|
|
131
|
-
//
|
|
130
|
+
// Good: Generic Object Pool
|
|
132
131
|
public class ObjectPool<T> where T : Component
|
|
133
132
|
{
|
|
134
133
|
private readonly T _prefab;
|
|
@@ -167,7 +166,7 @@ public class ObjectPool<T> where T : Component
|
|
|
167
166
|
}
|
|
168
167
|
}
|
|
169
168
|
|
|
170
|
-
//
|
|
169
|
+
// Usage example
|
|
171
170
|
public class BulletManager : MonoBehaviour
|
|
172
171
|
{
|
|
173
172
|
[SerializeField] private Bullet _bulletPrefab;
|
|
@@ -188,10 +187,10 @@ public class BulletManager : MonoBehaviour
|
|
|
188
187
|
}
|
|
189
188
|
```
|
|
190
189
|
|
|
191
|
-
### 4.
|
|
190
|
+
### 4. Singleton Pattern (Use with Caution)
|
|
192
191
|
|
|
193
192
|
```csharp
|
|
194
|
-
//
|
|
193
|
+
// Good: Safe Singleton
|
|
195
194
|
public abstract class Singleton<T> : MonoBehaviour where T : MonoBehaviour
|
|
196
195
|
{
|
|
197
196
|
private static T _instance;
|
|
@@ -232,7 +231,7 @@ public abstract class Singleton<T> : MonoBehaviour where T : MonoBehaviour
|
|
|
232
231
|
}
|
|
233
232
|
}
|
|
234
233
|
|
|
235
|
-
//
|
|
234
|
+
// Usage
|
|
236
235
|
public class GameManager : Singleton<GameManager>
|
|
237
236
|
{
|
|
238
237
|
public GameState CurrentState { get; private set; }
|
|
@@ -244,10 +243,10 @@ public class GameManager : Singleton<GameManager>
|
|
|
244
243
|
}
|
|
245
244
|
```
|
|
246
245
|
|
|
247
|
-
### 5.
|
|
246
|
+
### 5. Coroutine vs async/await
|
|
248
247
|
|
|
249
248
|
```csharp
|
|
250
|
-
//
|
|
249
|
+
// Good: Coroutine (integrated with Unity lifecycle)
|
|
251
250
|
public class EnemySpawner : MonoBehaviour
|
|
252
251
|
{
|
|
253
252
|
[SerializeField] private float _spawnInterval = 2f;
|
|
@@ -277,7 +276,7 @@ public class EnemySpawner : MonoBehaviour
|
|
|
277
276
|
}
|
|
278
277
|
}
|
|
279
278
|
|
|
280
|
-
//
|
|
279
|
+
// Good: async/await (I/O operations)
|
|
281
280
|
public class SaveManager : MonoBehaviour
|
|
282
281
|
{
|
|
283
282
|
public async Task SaveGameAsync(GameSaveData data)
|
|
@@ -302,10 +301,10 @@ public class SaveManager : MonoBehaviour
|
|
|
302
301
|
}
|
|
303
302
|
```
|
|
304
303
|
|
|
305
|
-
### 6.
|
|
304
|
+
### 6. Event System
|
|
306
305
|
|
|
307
306
|
```csharp
|
|
308
|
-
//
|
|
307
|
+
// Good: C# Events
|
|
309
308
|
public class Health : MonoBehaviour
|
|
310
309
|
{
|
|
311
310
|
public event Action<float> OnHealthChanged;
|
|
@@ -334,7 +333,7 @@ public class Health : MonoBehaviour
|
|
|
334
333
|
}
|
|
335
334
|
}
|
|
336
335
|
|
|
337
|
-
//
|
|
336
|
+
// Subscription
|
|
338
337
|
public class HealthUI : MonoBehaviour
|
|
339
338
|
{
|
|
340
339
|
[SerializeField] private Health _health;
|
|
@@ -357,10 +356,10 @@ public class HealthUI : MonoBehaviour
|
|
|
357
356
|
}
|
|
358
357
|
```
|
|
359
358
|
|
|
360
|
-
### 7.
|
|
359
|
+
### 7. Inspector Optimization
|
|
361
360
|
|
|
362
361
|
```csharp
|
|
363
|
-
//
|
|
362
|
+
// Good: SerializeField + private
|
|
364
363
|
public class Enemy : MonoBehaviour
|
|
365
364
|
{
|
|
366
365
|
[Header("Settings")]
|
|
@@ -374,11 +373,11 @@ public class Enemy : MonoBehaviour
|
|
|
374
373
|
[Header("Debug")]
|
|
375
374
|
[SerializeField, ReadOnly] private float _distanceToTarget;
|
|
376
375
|
|
|
377
|
-
//
|
|
376
|
+
// Read-only access via public property
|
|
378
377
|
public float MoveSpeed => _moveSpeed;
|
|
379
378
|
}
|
|
380
379
|
|
|
381
|
-
//
|
|
380
|
+
// Good: RequireComponent
|
|
382
381
|
[RequireComponent(typeof(Rigidbody))]
|
|
383
382
|
[RequireComponent(typeof(Collider))]
|
|
384
383
|
public class PhysicsObject : MonoBehaviour
|
|
@@ -392,19 +391,19 @@ public class PhysicsObject : MonoBehaviour
|
|
|
392
391
|
}
|
|
393
392
|
```
|
|
394
393
|
|
|
395
|
-
### 8.
|
|
394
|
+
### 8. Performance Optimization
|
|
396
395
|
|
|
397
396
|
```csharp
|
|
398
|
-
//
|
|
397
|
+
// Good: GetComponent Caching
|
|
399
398
|
public class OptimizedBehaviour : MonoBehaviour
|
|
400
399
|
{
|
|
401
|
-
//
|
|
400
|
+
// Bad: GetComponent in Update
|
|
402
401
|
void Update()
|
|
403
402
|
{
|
|
404
403
|
GetComponent<Rigidbody>().AddForce(Vector3.up);
|
|
405
404
|
}
|
|
406
405
|
|
|
407
|
-
//
|
|
406
|
+
// Good: Caching
|
|
408
407
|
private Rigidbody _rb;
|
|
409
408
|
|
|
410
409
|
void Awake()
|
|
@@ -418,49 +417,49 @@ public class OptimizedBehaviour : MonoBehaviour
|
|
|
418
417
|
}
|
|
419
418
|
}
|
|
420
419
|
|
|
421
|
-
//
|
|
420
|
+
// Good: String comparison optimization
|
|
422
421
|
public class TagChecker : MonoBehaviour
|
|
423
422
|
{
|
|
424
|
-
//
|
|
423
|
+
// Bad: String comparison
|
|
425
424
|
void OnTriggerEnter(Collider other)
|
|
426
425
|
{
|
|
427
426
|
if (other.tag == "Player") { }
|
|
428
427
|
}
|
|
429
428
|
|
|
430
|
-
//
|
|
429
|
+
// Good: Use CompareTag
|
|
431
430
|
void OnTriggerEnter(Collider other)
|
|
432
431
|
{
|
|
433
432
|
if (other.CompareTag("Player")) { }
|
|
434
433
|
}
|
|
435
434
|
}
|
|
436
435
|
|
|
437
|
-
//
|
|
436
|
+
// Good: Minimize allocations
|
|
438
437
|
public class NoAllocExample : MonoBehaviour
|
|
439
438
|
{
|
|
440
|
-
//
|
|
439
|
+
// Pre-allocate
|
|
441
440
|
private readonly Collider[] _hitBuffer = new Collider[10];
|
|
442
441
|
private readonly RaycastHit[] _rayBuffer = new RaycastHit[5];
|
|
443
442
|
|
|
444
443
|
void CheckOverlap(Vector3 position, float radius)
|
|
445
444
|
{
|
|
446
|
-
// NonAlloc
|
|
445
|
+
// Use NonAlloc version
|
|
447
446
|
int count = Physics.OverlapSphereNonAlloc(position, radius, _hitBuffer);
|
|
448
447
|
|
|
449
448
|
for (int i = 0; i < count; i++)
|
|
450
449
|
{
|
|
451
|
-
// _hitBuffer[i]
|
|
450
|
+
// Process _hitBuffer[i]
|
|
452
451
|
}
|
|
453
452
|
}
|
|
454
453
|
}
|
|
455
454
|
```
|
|
456
455
|
|
|
457
|
-
##
|
|
456
|
+
## Recommended Folder Structure
|
|
458
457
|
|
|
459
|
-
```
|
|
458
|
+
```text
|
|
460
459
|
Assets/
|
|
461
|
-
├── _Project/ #
|
|
460
|
+
├── _Project/ # Project assets
|
|
462
461
|
│ ├── Scripts/
|
|
463
|
-
│ │ ├── Core/ #
|
|
462
|
+
│ │ ├── Core/ # Core systems
|
|
464
463
|
│ │ ├── Player/
|
|
465
464
|
│ │ ├── Enemy/
|
|
466
465
|
│ │ ├── UI/
|
|
@@ -473,44 +472,44 @@ Assets/
|
|
|
473
472
|
│ ├── Textures/
|
|
474
473
|
│ └── Audio/
|
|
475
474
|
├── Scenes/
|
|
476
|
-
├── Resources/ #
|
|
475
|
+
├── Resources/ # Runtime load (use with caution)
|
|
477
476
|
└── Plugins/
|
|
478
477
|
```
|
|
479
478
|
|
|
480
|
-
##
|
|
479
|
+
## Naming Conventions
|
|
481
480
|
|
|
482
481
|
```csharp
|
|
483
|
-
//
|
|
482
|
+
// Class: PascalCase
|
|
484
483
|
public class PlayerController { }
|
|
485
484
|
|
|
486
|
-
//
|
|
485
|
+
// Interface: I prefix
|
|
487
486
|
public interface IDamageable { }
|
|
488
487
|
|
|
489
|
-
//
|
|
488
|
+
// Private field: _ prefix + camelCase
|
|
490
489
|
private float _moveSpeed;
|
|
491
490
|
|
|
492
|
-
// SerializeField: _
|
|
491
|
+
// SerializeField: Keep _ prefix
|
|
493
492
|
[SerializeField] private float _health;
|
|
494
493
|
|
|
495
|
-
//
|
|
494
|
+
// Constants: UPPER_SNAKE_CASE or PascalCase
|
|
496
495
|
private const float MAX_HEALTH = 100f;
|
|
497
496
|
private const float MaxHealth = 100f;
|
|
498
497
|
|
|
499
|
-
//
|
|
498
|
+
// Property: PascalCase
|
|
500
499
|
public float Health => _health;
|
|
501
500
|
|
|
502
|
-
//
|
|
501
|
+
// Method: PascalCase
|
|
503
502
|
public void TakeDamage(float damage) { }
|
|
504
503
|
```
|
|
505
504
|
|
|
506
|
-
##
|
|
507
|
-
|
|
508
|
-
- [ ] MonoBehaviour
|
|
509
|
-
- [ ] GetComponent
|
|
510
|
-
- [ ]
|
|
511
|
-
- [ ]
|
|
512
|
-
- [ ] SerializeField + private
|
|
513
|
-
- [ ] CompareTag
|
|
514
|
-
- [ ] NonAlloc
|
|
515
|
-
- [ ] Update
|
|
516
|
-
- [ ]
|
|
505
|
+
## Checklist
|
|
506
|
+
|
|
507
|
+
- [ ] Minimize MonoBehaviour logic
|
|
508
|
+
- [ ] Cache GetComponent results
|
|
509
|
+
- [ ] Unsubscribe events (OnDisable)
|
|
510
|
+
- [ ] Apply object pooling
|
|
511
|
+
- [ ] Use SerializeField + private
|
|
512
|
+
- [ ] Use CompareTag
|
|
513
|
+
- [ ] Use NonAlloc APIs
|
|
514
|
+
- [ ] Minimize Update (only when needed)
|
|
515
|
+
- [ ] Separate data with ScriptableObject
|