배경
지금은 Application.targetFrameRate·QualitySettings.vSyncCount를 어디서도 정하지 않는다.
바탕화면에 상주하는 앱이라 사용자가 프레임(= CPU·GPU 사용량)을 직접 고를 수 있어야 한다.
이 설정은 에디터 플레이와 빌드 양쪽에서 실제로 적용돼야 한다.
2026-09-18 범위 추가 — FPS 텍스트(회색 · 작게)를 창 네 구석 중 한 곳에 띄우고, 그 위치(숨김 포함)도 설정에서 고른다.
결정 (2026-09-18)
| 항목 | 결정 |
|---|---|
| 적용 담당 | 새 매니저 FrameRateManager (WindowManager는 창 제어 전담) |
| 에디터 권위 | 에디터·빌드 모두 저장값 — 인스펙터는 첫 실행 기본값뿐. 고르면 즉시 저장·반영 |
| 기본값 | 프레임 60 · FPS 텍스트 숨김 |
| FPS 텍스트 | !System Canvas 맨 밑의 FpsTextPresenter — 0.5초 갱신 · raycastTarget 끔(클릭스루) |
할 일
- [x] 설정 화면(
SettingPresenter)에 드롭다운 추가 — 항목:30·60·90·144·모니터 동기화. 옵션 라벨은 코드가 채운다(기존 드롭다운 규약) - [x] 적용: 숫자 항목 =
vSyncCount = 0+targetFrameRate = N/ 모니터 동기화 =vSyncCount = 1(targetFrameRate는 무시됨) - [x] 적용 담당 결정 —
FrameRateManager신설 - [x]
PlayerPrefs저장 —Display.FrameRate·Display.FpsTextPosition, 값이 바뀔 때만 즉시Save() - [x] 에디터 권위 규칙 결정 — 에디터도 저장값.
Settings 규칙.md1장 예외로 적었다 - [x] 기본값 결정 — 60
- [x] FPS 텍스트 위치 드롭다운 —
숨김· 네 구석.FpsTextPresenter가 구석으로 옮긴다 - [x] 에디터 플레이 실측 — 프레임 항목별 FPS 숫자 · 위치 5개 · 멈췄다 켜도 유지
- [x] ⚠️ 에디터 검증 — 에디터에서는 Game 뷰의 VSync 토글이
vSyncCount를 덮는다.모니터 동기화가 에디터에서 실제로 먹는지 확인하고, 안 먹으면 한계를 규칙 문서에 적는다 - [x] 빌드(.exe)에서 각 항목 실측 (프로파일러 또는 FPS 표시) — 투명 창 모드에서도
- [x]
Settings 규칙.md키 표 갱신 - [x] 빌드에서 FPS 텍스트 구석 위로 클릭이 통과되는지 확인
완료 조건
설정에서 5개 항목을 고르면 에디터 플레이와 빌드 모두 해당 프레임으로 돈다(실측). 빌드를 껐다 켜도 고른 값이 유지된다. FPS 텍스트가 고른 구석에 뜨고(숨김이면 안 뜨고) 클릭스루를 막지 않는다.
막고 있는 것 / 선행 일감
- 없음
관련 커밋
70e458d— 프레임 제한 · FPS 텍스트 위치 (2026-09-18 사용자 확인 통과)