UIToolkit 기본 UI 개발 중
This commit is contained in:
132
Assets/Scripts/Simulator/CLAUDE.md
Normal file
132
Assets/Scripts/Simulator/CLAUDE.md
Normal file
@@ -0,0 +1,132 @@
|
||||
# Simulator 모듈 가이드
|
||||
|
||||
Simulator는 Factory 모듈의 **시뮬레이션 전용 버전**입니다. 실시간 MQTT 데이터 없이 로컬에서 설비 동작을 테스트하고 시뮬레이션합니다.
|
||||
|
||||
---
|
||||
|
||||
## 모듈 구조
|
||||
|
||||
```
|
||||
Simulator/
|
||||
├── SimulatorAppMain.cs # 앱 진입점
|
||||
├── SimulatorSceneMain.cs # 씬 초기화
|
||||
├── Config/
|
||||
│ ├── AppConfig.cs # 설정 로드
|
||||
│ └── Constants.cs # 상수 정의
|
||||
└── LNB/
|
||||
├── SimulatorLNB.cs # Left Navigation Bar
|
||||
├── LNBExplorer.cs # 탐색기 뷰
|
||||
└── LNBLibrary.cs # 라이브러리 뷰
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## SimulatorAppMain
|
||||
|
||||
```csharp
|
||||
namespace Simulator
|
||||
{
|
||||
[DefaultExecutionOrder(100)]
|
||||
public class SimulatorAppMain : SingletonApp<SimulatorAppMain>
|
||||
{
|
||||
public Action Initialized;
|
||||
|
||||
protected override async void Init()
|
||||
{
|
||||
// 로깅 설정
|
||||
Log4netCodeConfigurator.Setup();
|
||||
|
||||
// 설정 로드
|
||||
await SettupConfigAsync();
|
||||
|
||||
// 네트워크 설정 (MQTT 토픽은 주석 처리됨)
|
||||
SetNetworkConfig();
|
||||
|
||||
Initialized?.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Factory와의 차이점
|
||||
|
||||
| 항목 | Factory | Simulator |
|
||||
|------|---------|-----------|
|
||||
| **MQTT 구독** | AGV, ALARM, PORT 토픽 활성화 | 토픽 구독 비활성화 |
|
||||
| **데이터 소스** | 실시간 MQTT | 로컬 시뮬레이션 데이터 |
|
||||
| **용도** | 프로덕션 시각화 | 개발/테스트 |
|
||||
| **Playback** | 서버 데이터 재생 | 로컬 데이터 재생 |
|
||||
|
||||
---
|
||||
|
||||
## 설정
|
||||
|
||||
Factory와 동일한 `FactoryAppConfig`를 공유합니다:
|
||||
|
||||
```csharp
|
||||
private async UniTask SettupConfigAsync()
|
||||
{
|
||||
if (FactoryAppConfig.LoadConfig())
|
||||
{
|
||||
Application.targetFrameRate = FactoryAppConfig.Config.TargetFrameRate;
|
||||
LocalizationManager.Instance.LoadDefaultLocalizationData(FactoryAppConfig.Config.Language);
|
||||
// ...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 네트워크 설정
|
||||
|
||||
```csharp
|
||||
private void SetNetworkConfig()
|
||||
{
|
||||
// URL 등록
|
||||
URLList.Add("baseinfo", $"{FactoryConstants.API_DOMAIN}/baseinfo");
|
||||
URLList.Add("playbackList", $"{FactoryConstants.API_DOMAIN}/playback/list");
|
||||
URLList.Add("playbackFile", $"{FactoryConstants.API_DOMAIN}/playback");
|
||||
|
||||
// MQTT 설정만 하고 토픽은 구독하지 않음
|
||||
DataRepository.Instance.MqttReceiver.SetDataPicker(...);
|
||||
DataRepository.Instance.MqttReceiver.SetDomainPort(...);
|
||||
|
||||
// 주석 처리된 토픽 구독
|
||||
// DataRepository.Instance.MqttReceiver.AddTopic("AGV");
|
||||
// DataRepository.Instance.MqttReceiver.AddTopic("ALARM");
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## LNB (Left Navigation Bar)
|
||||
|
||||
### SimulatorLNB
|
||||
|
||||
시뮬레이터 전용 좌측 네비게이션 바입니다.
|
||||
|
||||
### LNBExplorer
|
||||
|
||||
파일 시스템 탐색기 뷰를 제공합니다.
|
||||
|
||||
### LNBLibrary
|
||||
|
||||
사전 정의된 설비 라이브러리를 제공합니다.
|
||||
|
||||
---
|
||||
|
||||
## 사용 시나리오
|
||||
|
||||
1. **설비 배치 테스트**: 3D 공간에 설비 배치 및 레이아웃 확인
|
||||
2. **애니메이션 테스트**: AGV 이동 경로, 알람 UI 동작 확인
|
||||
3. **UI 개발**: InfoWindow, Modal 등 UI 컴포넌트 테스트
|
||||
4. **Playback 테스트**: 과거 데이터 재생 기능 검증
|
||||
|
||||
---
|
||||
|
||||
## 의존성
|
||||
|
||||
- **Factory 모듈**: Config, Constants 공유
|
||||
- **UVC 라이브러리**: Core, Data, Locale, Util, Log
|
||||
7
Assets/Scripts/Simulator/CLAUDE.md.meta
Normal file
7
Assets/Scripts/Simulator/CLAUDE.md.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ced865fb7098cfa44982436dcc76e534
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user