⚠️이 글은 API 문서를 보면서 공부한 내용 정리한겁니다.
https://kb.heathen.group/assets/steamworks/unity-engine/quick-start-guide/gameobject-initialization
1. 소개
우리가 선택한 GameObject에 간단한 컴포넌트 스크립트를 붙여 Steam API를 초기화합니다.
그런다음 Steamworks Behavior 또는 Steamworks Creator를 사용하여 초기화를 처리할 수 있습니다.
그러나 두 가지 방법 모두 먼저 Steam Settings object를 만들고 구성해야 합니다.
우리의 Steam Settings object를 하나 정의하고 구성을 한 뒤에는,
Steamworks Behavior 또는 Steamworks Creator에 둘 중 원하는 곳에 적용할 수 있습니다.
★Steamworks Behaviour
Steamworks Behaviour 문서 ↓
https://kb.heathen.group/assets/steamworks/unity-engine/components/steamworks-behaviour
or
Steamworks Behaviour는 게임 시작 시 Steam 설정 개체를 초기화하는 데 사용되며,
Initialized와 같은 몇 가지 시스템 수준 이벤트에 대한 액세스를 제공합니다.
한 게임에는 Steamworks Behavior가 1개만 있어야 합니다.
Steamworks Creator
Steamworks Creator 문서 ↓
https://kb.heathen.group/assets/steamworks/unity-engine/components/steamworks-creator
이것은 Steam API가 이미 초기화되었는지 여부를 확인하는 간단한 스크립트 동작입니다.
그렇지 않은 경우 새 Steamworks Behaviour을 생성하고 원한다면 DontDestroyOnLoad 가능합니다.
필요한 경우에만 작동하므로 Steamworks Creator를 게임의 모든 Scene에 안전하게 배치할 수 있습니다.
Scene 아키텍처에 대한 옛날 방식을 사용하고 Bootstrap 방법을 사용하지 않는 개발자를 위한 것입니다.
어차피 Bootstrap 방식을 쓰신다면 이건 상관없을 듯 합니다.
★Steam Settings
Steam Settings 문서 ↓
https://kb.heathen.group/assets/steamworks/unity-engine/scriptable-objects/steam-settings
★Steam Settings은 Scriptable objects입니다.
Steam Settings은 Steam API를 초기화 하는 역할을 합니다.
사용방법은 Steam Settings 개체를 만들고 스크립트에서 참조해 준 뒤,
Initialize() 메서드를 호출하여 API를 초기화해야 합니다.
★Scriptable Objects이기 때문에 개체 만들 때 프로젝트 탭에 우클릭 하셔서 만드실 수 있습니다.
Create > Steamworks > Settings
생성하면 보시는 것과 같이 Application Id가 있습니다.
이 칸에는 뭐라도 설정해주셔야합니다.
Application Id
자신의 ID가 없으면 업적, 통계 또는 기타 인공물을 만들 수 없고 배포도 안됩니다.
Valve는 신청 수수료를 지불하면 앱 ID를 발급합니다.
아직 자신의 ID가 없는 경우 App ID 480을 테스트 ID로 사용할 수 있습니다.
Heathen의 샘플과 데모는 모두 App ID 480을 사용합니다.
Artifacts
Application Id 밑에 Artifacts 탭이 있습니다.
Steam Settings Object는 입력 필드, 통계, 순위표, 업적, DLC 및 인벤토리 항목과 같은
모든 Steam "Artifacts"를 참조하는 데 사용할 수 있습니다.
이것들은 대부분 Steam 개발자 사이트에서 정의한 다음 "Import" 버튼을 눌러 프로젝트로 가져올 수 있습니다.
Import 버튼이 작동하려면 Unity 에디터가 "Play" 모드에 있어야 합니다.
Import로 가져올 수 있는 것들 ↓
- 업적
- 다운로드 가능한 콘텐츠
- ★ 인벤토리 항목 ★
* 메모 Valve는 가져올 수 있는 인벤토리 항목에 대한 정보를 제한합니다.
예를 들어 번들 콘텐츠는 가져오지 않습니다.
이는 Valve의 의도적인 제한 사항이며 해결할 수 없습니다.
일반적으로 항목의 항목 ID만 필요하므로 대부분의 사용 사례에서 문제가 되지 않습니다.
위의 Artifacts까지 설정한 Steam Settings는 스크립트에서 쓸 때 초기화하셔야합니다.
using HeathenEngineering.SteamworksIntegration;
public class SomeScriptOfYours : MonoBehaviour
{
[SerializeField]
private SteamSettings settings;
void Start()
{
//Initialize()만 해주면 사용 가능
settings.Initialize();
}
}
근데 예제를 살펴보니 Start() 아니더라도 OnEnable()에서 초기화해주셔도 됩니다.
Steam 게임 서버(Steam Game Server) 구성 Configuration
Steam Game Server 문서 ↓
https://kb.heathen.group/company/steam/steamworks/multiplayer/game-server-browser
Steam 게임 서버 구성을 사용하면 Steam에서 볼 수 있는 게임 서버의 세부 정보를 구성할 수 있습니다.
이것은 "Steam 게임 서버(Steam Game Server)"로 초기화하고 로그온할 서버 빌드에만 해당됩니다.
"자동 로그온 (Auto LogOn)" 기능을 false로 설정했다면,
로그온 준비 되었을 때 API.App.Server.LogOn() 메서드를 통해 서버에 대한 LogOn을 호출해야 합니다.
이는 선택한 HLAPI에서 "StartServer"를 호출하고 서버를 구성하여 준비한 후와 같이
서버를 준비할 때까지 서버가 Steam 게임 서버 브라우저에 등록되지 않도록 하려는 경우에
가장 일반적으로 수행됩니다. 연결을 위해.
구성 Configuration 문서 ↓
https://kb.heathen.group/assets/steamworks/objects/steam-game-server-configuration
'스팀웍스SteamWorks > Heathen API' 카테고리의 다른 글
유니티 Heathen api로 스팀웍스 스탯 및 업적 구현 Unity Heathen api SteamWorks Stats and Achievements (0) | 2023.06.01 |
---|---|
Heathen API 디버깅 툴 Debugging Tools (0) | 2023.05.19 |
Heathen API Steamworks Behaviour 스팀웍스 Behaviour (0) | 2023.05.16 |
Heathen Steam API 소개 (0) | 2023.05.16 |