ISteamworksContext
Steamworks SDK를 사용할 수 있는 상태인지 알려 주는 인터페이스입니다. 현재 빌드 대상이 Steamworks SDK를 지원하는지, 앱이 Steamworks SDK를 초기화해 Steam 클라이언트에 연결됐는지를 확인합니다. Steamworks SDK를 초기화하거나 종료하지는 않습니다.
- 인터페이스:
ISteamworksContext - 네임스페이스:
Hive.Axyl.Steamworks - 패키지:
com.com2usplatform.hiveaxyl.steamworks
획득
SteamworksContext.CreateDefault()로 현재 빌드 대상에 맞는 구현을 만듭니다. HiveBootstrap.Initialize에 등록하거나 HiveCore.Resolve<T>()로 가져오지 않습니다.
SteamAPI.Init()을 호출하기 전에 만들어도 됩니다. 만든 객체는 앱이 종료될 때까지 그대로 사용할 수 있으며, 지원하지 않는 플랫폼에서는 두 프로퍼티가 항상 false인 구현이 반환됩니다.
지원 플랫폼
| 플랫폼 | 지원 | 설명 |
|---|---|---|
| Windows | 지원 | Steam 클라이언트가 실행 중이어야 합니다. |
| macOS | 지원 | Steam 클라이언트가 실행 중이어야 합니다. |
| Linux | 미지원 | Steamworks SDK 연동을 지원하지 않습니다. |
| Android, iOS | 미지원 | 이 플랫폼에서 Steam 계정으로 로그인하는 방법은 Windows와 macOS 외 OS를 참조하세요. |
지원하지 않는 플랫폼에서도 SteamworksContext.CreateDefault()는 예외 없이 객체를 반환하므로, 플랫폼을 가려 호출할 필요는 없습니다. IsSupported로 지원 여부를 확인하세요.
프로퍼티
| 프로퍼티 | 타입 | 설명 |
|---|---|---|
IsSupported | bool | 현재 빌드 대상이 Steamworks SDK를 실행할 수 있으면 true입니다. Windows와 macOS 빌드에서만 true입니다. |
IsInitialized | bool | 앱이 Steamworks SDK를 초기화했고 Steam 클라이언트가 실행 중이어서 연결할 수 있으면 true입니다. Windows와 macOS에서는 SteamAPI.IsSteamRunning()의 결과이며, 그 밖의 플랫폼에서는 항상 false입니다. |
앱이 SteamAPI.Init()을 호출하기 전에 IsInitialized가 false인 것은 정상이며, 초기화 순서를 맞추는 동안 나오는 false는 오류가 아닙니다.
호출 예시
Steamworks SDK 생명주기
이 모듈은 SteamAPI.Init(), SteamAPI.RunCallbacks(), SteamAPI.Shutdown()을 호출하지 않습니다. 세 호출은 모두 앱이 담당합니다.
- 앱 시작:
SteamAPI.Init()한 번 호출 - 매 프레임:
SteamAPI.RunCallbacks()호출 - 앱 종료:
SteamAPI.Shutdown()한 번 호출
SteamAPI.RunCallbacks()를 매 프레임 호출하지 않으면 Steamworks의 콜백이 전달되지 않아 Steam 인증 티켓 요청과 결제 승인 콜백 같은 작업이 응답을 받지 못합니다.
초기화 절차와 개발 중 steam_appid.txt 준비 방법은 Steamworks 초기화를 참조하세요.
macOS 빌드 후처리
Steamworks.NET이 제공하는 steam_api.bundle의 번들 식별자에는 밑줄이 들어 있어 App Store와 TestFlight 검증을 통과하지 못합니다. 이 모듈은 macOS 빌드를 마친 뒤 그 식별자를 검증을 통과하는 값으로 바꿉니다. 앱이 따로 설정할 것은 없으며, 이 후처리는 외부 코드 서명 전에 실행됩니다.