152 lines
4.2 KiB (Stored with Git LFS)
Markdown
152 lines
4.2 KiB (Stored with Git LFS)
Markdown
# Streamingle Camera Controller Plugin
|
|
|
|
Unity와 StreamDeck 간의 실시간 카메라 제어 플러그인입니다.
|
|
|
|
## 🚀 주요 기능
|
|
|
|
- **실시간 Unity 연결**: WebSocket을 통한 Unity 서버와의 실시간 통신
|
|
- **카메라 제어**: StreamDeck 버튼으로 Unity 카메라 전환
|
|
- **Property Inspector**: 실시간 연결 상태 및 카메라 목록 표시
|
|
- **자동 재연결**: 연결 끊김 시 자동 재연결
|
|
- **다국어 지원**: 한국어 UI
|
|
|
|
## 📋 요구사항
|
|
|
|
- **StreamDeck**: 3.10.188.226 이상
|
|
- **Unity**: URP (Universal Render Pipeline)
|
|
- **Node.js**: 20.x 이상
|
|
- **Unity 서버**: StreamDeckServerManager.cs 실행 중
|
|
|
|
## 🔧 설치 방법
|
|
|
|
1. **플러그인 설치**
|
|
```bash
|
|
# 플러그인 디렉토리로 이동
|
|
cd Streamdeck/com.mirabox.streamingle.sdPlugin
|
|
|
|
# 의존성 설치
|
|
npm install
|
|
```
|
|
|
|
2. **Unity 서버 설정**
|
|
- Unity 프로젝트에 `StreamDeckServerManager.cs` 스크립트 추가
|
|
- Unity에서 플레이 모드 실행 (포트 10701에서 서버 시작)
|
|
|
|
3. **StreamDeck에서 플러그인 추가**
|
|
- StreamDeck 앱에서 플러그인 추가
|
|
- 카메라 컨트롤러 액션을 스트림덱에 배치
|
|
|
|
## 🎮 사용 방법
|
|
|
|
### 기본 사용법
|
|
1. **Unity 서버 시작**: Unity에서 플레이 모드 실행
|
|
2. **StreamDeck 연결**: 카메라 컨트롤러 버튼 클릭
|
|
3. **Property Inspector 설정**: 버튼 우클릭 → 설정
|
|
4. **카메라 전환**: 드롭다운에서 카메라 선택 또는 버튼 클릭
|
|
|
|
### Property Inspector 기능
|
|
- **연결 상태**: Unity 서버 연결 상태 실시간 표시
|
|
- **카메라 선택**: 사용 가능한 카메라 목록에서 선택
|
|
- **자동 전환**: 드롭다운 변경 시 즉시 카메라 전환
|
|
- **수동 전환**: 버튼 클릭으로 선택한 카메라로 전환
|
|
- **새로고침**: 카메라 목록 새로고침
|
|
|
|
## 🔧 개발자 정보
|
|
|
|
### 프로젝트 구조
|
|
```
|
|
com.mirabox.streamingle.sdPlugin/
|
|
├── plugin/
|
|
│ └── index.js # 메인 플러그인 코드
|
|
├── propertyInspector/
|
|
│ └── camera/
|
|
│ ├── index.html # Property Inspector UI
|
|
│ └── index.js # Property Inspector 로직
|
|
├── manifest.json # 플러그인 매니페스트
|
|
└── package.json # 프로젝트 설정
|
|
```
|
|
|
|
### 주요 파일 설명
|
|
|
|
#### plugin/index.js
|
|
- WebSocket 클라이언트 (Unity 서버 연결)
|
|
- StreamDeck 액션 처리
|
|
- Property Inspector와의 통신
|
|
- 자동 재연결 로직
|
|
|
|
#### propertyInspector/camera/index.js
|
|
- Property Inspector UI 로직
|
|
- 플러그인과의 양방향 통신
|
|
- 실시간 상태 업데이트
|
|
|
|
### 통신 프로토콜
|
|
|
|
#### Unity → 플러그인
|
|
```json
|
|
{
|
|
"type": "connection_established",
|
|
"data": {
|
|
"camera_data": { ... },
|
|
"current_camera": { ... }
|
|
}
|
|
}
|
|
```
|
|
|
|
#### 플러그인 → Unity
|
|
```json
|
|
{
|
|
"type": "switch_camera",
|
|
"data": {
|
|
"camera_index": 0
|
|
}
|
|
}
|
|
```
|
|
|
|
## 🐛 문제 해결
|
|
|
|
### Unity 연결 안됨
|
|
1. Unity 서버가 실행 중인지 확인 (포트 10701)
|
|
2. 방화벽 설정 확인
|
|
3. Unity 콘솔에서 오류 메시지 확인
|
|
|
|
### Property Inspector 업데이트 안됨
|
|
1. StreamDeck 앱 재시작
|
|
2. 플러그인 재설치
|
|
3. 브라우저 개발자 도구에서 오류 확인
|
|
|
|
### 카메라 전환 안됨
|
|
1. Unity에서 CameraManager 설정 확인
|
|
2. 카메라 인덱스 범위 확인
|
|
3. Unity 콘솔에서 오류 메시지 확인
|
|
|
|
## 📝 로그 확인
|
|
|
|
플러그인 로그는 다음 위치에서 확인할 수 있습니다:
|
|
- **플러그인 로그**: `streamingle.log`
|
|
- **빌드 로그**: `build.log`
|
|
- **Unity 콘솔**: Unity 에디터 콘솔
|
|
|
|
## 🔄 업데이트 내역
|
|
|
|
### v2.0.0 (현재)
|
|
- 완전히 새로 설계된 구조
|
|
- weather 플러그인 구조 참고
|
|
- context 기반 데이터 관리
|
|
- 향상된 Property Inspector UI
|
|
- 자동 재연결 메커니즘 개선
|
|
|
|
### v1.0.0
|
|
- 초기 버전
|
|
- 기본 카메라 제어 기능
|
|
|
|
## 📄 라이선스
|
|
|
|
MIT License
|
|
|
|
## 🤝 기여하기
|
|
|
|
버그 리포트나 기능 요청은 GitHub Issues를 통해 제출해주세요.
|
|
|
|
---
|
|
|
|
**Streamingle Team** - Unity와 StreamDeck의 완벽한 연동을 위한 플러그인 |