Streamingle_URP/Streamdeck/HOW_TO_DEBUG_STREAMDOCK.md
2025-10-28 00:02:17 +09:00

205 lines
7.0 KiB (Stored with Git LFS)
Markdown

# StreamDock 플러그인 디버깅 방법
## 중요: 반드시 개발자 콘솔을 열어서 확인하세요!
StreamDock은 Electron 기반이므로 Chrome 개발자 도구로 디버그할 수 있습니다.
## 방법 1: 키보드 단축키 (가장 빠름)
1. StreamDock 프로그램이 실행 중인 상태에서
2. StreamDock 창을 클릭해서 포커스를 맞춘 후
3. 다음 키를 눌러보세요:
- **F12**
- **Ctrl + Shift + I**
- **Ctrl + Shift + J** (콘솔 직접 열기)
4. 개발자 도구가 열리면 **Console** 탭을 클릭
## 방법 2: 로그 파일 확인
로그가 파일로 저장될 수도 있습니다:
```
%APPDATA%\Hotspot\StreamDock\logs\
```
또는 이 배치 파일 실행:
```batch
view-logs.bat
```
## 디버그 출력 확인 방법
### 1. 버튼을 처음 추가할 때 (willAppear)
마커 버튼을 추가하면 이렇게 나와야 합니다:
```
============================================
👀 버튼 나타남 이벤트
🔍 Context: <컨텍스트 ID>
🔍 Action UUID: com.mirabox.streamingle.optitrack_marker_toggle
⚙️ 초기 설정: {}
✅✅✅ MARKER BUTTON DETECTED ✅✅✅
✅ This is the OptiTrack Marker Toggle button!
✅ When clicked, it should send: toggle_optitrack_markers
🎯 최종 actionType: optitrack_marker_toggle
💾 설정 저장 완료
============================================
```
카메라 버튼을 추가하면 이렇게 나옵니다:
```
============================================
👀 버튼 나타남 이벤트
🔍 Context: <컨텍스트 ID>
🔍 Action UUID: com.mirabox.streamingle
⚙️ 초기 설정: {}
📹 카메라 컨트롤러 등록 (기본값)
📹 This button will send camera switch messages
🎯 최종 actionType: camera
💾 설정 저장 완료
============================================
```
### 2. 버튼을 클릭할 때 (keyDown)
마커 버튼을 클릭하면:
```
╔════════════════════════════════════════╗
║ BUTTON CLICKED - DEBUG INFO ║
╠════════════════════════════════════════╣
Context: <컨텍스트 ID>
ActionType: optitrack_marker_toggle
All Settings: {"actionType":"optitrack_marker_toggle","currentState":0}
╚════════════════════════════════════════╝
➡️ Routing to: MARKER TOGGLE handler
Will send: {"type":"toggle_optitrack_markers"}
🎯 OptiTrack 마커 토글 실행
📤 Unity에 OptiTrack 마커 토글 요청 전송: {"type":"toggle_optitrack_markers"}
🔍 Unity 연결 상태: true
🔍 Unity 소켓 상태: true
✅ 메시지 전송 완료
🎨 버튼 상태 업데이트: OFF
```
카메라 버튼을 클릭하면:
```
╔════════════════════════════════════════╗
║ BUTTON CLICKED - DEBUG INFO ║
╠════════════════════════════════════════╣
Context: <컨텍스트 ID>
ActionType: camera
All Settings: {"actionType":"camera","camera_index":0}
╚════════════════════════════════════════╝
➡️ Routing to: CAMERA handler
Will send: {"type":"switch_camera","data":{...}}
```
## 문제 진단
### 증상: Unity에서 switch_camera 메시지를 받음
**원인**: 잘못된 버튼을 클릭하고 있습니다!
**확인 방법**:
1. StreamDock 개발자 콘솔 열기
2. 버튼 클릭
3. `ActionType:` 이 뭐라고 나오는지 확인
**결과 해석**:
- `ActionType: camera` → 카메라 버튼입니다. 마커 버튼이 아닙니다!
- `ActionType: optitrack_marker_toggle` → 올바른 마커 버튼입니다!
### 증상: 버튼 타이틀이 비어있음
**원인 1**: 버튼을 잘못 추가했습니다
- 카메라 버튼은 Unity에서 데이터를 받아와서 타이틀을 업데이트합니다
- Unity가 연결되지 않으면 타이틀이 비어있을 수 있습니다
**원인 2**: 마커 버튼이 제대로 추가되지 않았습니다
- 개발자 콘솔에서 `✅✅✅ MARKER BUTTON DETECTED` 메시지를 확인하세요
- 이 메시지가 없으면 버튼이 제대로 등록되지 않은 것입니다
## StreamDock에서 올바른 마커 버튼 추가하는 방법
1. StreamDock 소프트웨어 열기
2. 왼쪽 액션 목록에서 찾기:
- **"OptiTrack Marker Toggle"** 이라는 이름의 액션
- 아이콘: optitrack_marker_icon.png 이미지
3. 이 액션을 빈 버튼 슬롯으로 드래그
4. 추가되면 개발자 콘솔에서 `✅✅✅ MARKER BUTTON DETECTED` 확인
5. 버튼 타이틀이 "마커\nON" 으로 표시되는지 확인
## 잘못된 버튼을 추가한 경우
잘못 추가한 버튼은:
1. 길게 눌러서 삭제
2. 올바른 "OptiTrack Marker Toggle" 액션 다시 추가
3. 개발자 콘솔에서 버튼 등록 메시지 확인
## 플러그인 재배포 후 확인 사항
```batch
cd Streamdeck
deploy-plugin.bat
```
배포 후:
1. StreamDock이 자동으로 재시작됨
2. 기존 버튼들은 그대로 유지됨
3. 새 버튼 추가 시 새로운 코드가 적용됨
**중요**: 기존에 추가된 버튼은 설정이 그대로 유지됩니다!
- 배포 전에 추가한 마커 버튼은 계속 작동함
- 배포 전에 추가한 카메라 버튼도 계속 카메라 버튼으로 작동함
## 배치 파일들
### deploy-plugin.bat
플러그인 자동 배포:
- 관리자 권한 자동 획득
- StreamDock 종료
- 플러그인 파일 복사
- StreamDock 재시작
- 2초 후 자동으로 창 닫힘
### view-logs.bat
로그 파일 빠른 확인:
- 로그 디렉토리 열기
- 최신 로그 파일을 Notepad로 열기
## 개발자 콘솔이 안 열리는 경우
StreamDock 버전이나 설정에 따라 개발자 도구가 비활성화되어 있을 수 있습니다.
**대안 1**: 로그 파일 확인
```batch
view-logs.bat
```
**대안 2**: Unity 콘솔만으로 판단
- Unity에서 받은 메시지 타입 확인
- `switch_camera` → 카메라 버튼
- `toggle_optitrack_markers` → 마커 버튼 (정답!)
**대안 3**: 디버그 빌드
일부 Electron 앱은 프로덕션 빌드에서 개발자 도구를 막아둡니다.
StreamDock 설정 파일을 확인해보세요:
```
%APPDATA%\Hotspot\StreamDock\
```
## 정리
현재 문제:
- ✅ Unity는 메시지를 정상적으로 받고 있음
- ✅ 플러그인 코드는 정상 작동 중
- ❌ 잘못된 버튼을 클릭하고 있음
해결 방법:
1. StreamDock 개발자 콘솔 열기 (F12)
2. 버튼 클릭
3. ActionType 확인
4. 만약 camera라면 → 잘못된 버튼, 삭제하고 "OptiTrack Marker Toggle" 액션 추가
5. 만약 optitrack_marker_toggle이라면 → 올바른 버튼!