Steamworks Behaviour
The most important part

Like what your seeing?

Consider supporting us as a GitHub Sponsor and get instant access to all our Unity assets, exclusive tools and assets, escalated support and issue tracking and our gratitude. These articles are made possible by our GitHub Sponsors ... become a sponsor today!

Introduction

Steamworks Behaviour replaces the concept of Steam Manager as seen in some of the older Steamworks.NET example scripts. This behaviour object deals with the initialization of the Steam API and operating its main update loop.
Your game should have exactly one of these behaviours.
Your game should never destroy or reload one of these behaviours.
This means you should not define this behaviour in a scene that is loaded multiple times such as a title or menu scene.
You are STRONGLY encouraged to use a bootstrap model taking advantage of Unity's multi-scene features. Alternatively you can use the Steamworks Creator behaviour.

Use

You should add a Steamworks Behaviour component to a game object in the first scene to be loaded by your game. It is important that this game object is never destroyed as it is operating your Steam API integration. We do recommend you use additive loading and simply never unload your bootstrapping scene however you can use the Do Not Destroy approach if you are carful to NEVER reload the scene that defined Steamworks Behaviour.
The Steamworks behaviour is not intended to be a functional component that is you will not interact with this component, it exists wholly to initialize, operate and shutdown the Steam API integration according to Unity events. The one exception to this case is when operating a Steam Game Server in a situation where you need to delay API initialization. You can optionally configure your Steam Settings to NOT auto initialize Steam Game Server, in which case you will need to call SteamworksBeahviour.InitializeGameServer in order to kick off the initialization process.
This is rare and in general you should be allowing the system to auto initialize.
steamworksBeahviour.InitalizeGameServer();

FAQ

Where are all the events?

We have created managers and events components which can be used not only to expose events to the Unity inspector but to provide game object based access to various systems.
Exposes controls and events for a specific lobby chat
Exposes controls and events for a specific lobby
Exposes controls and events for the Steam Overlay features
Provides inspector access to Initialize and Initialization Error events
Provides inspector access to connect, disconnect and failure events for the Steam Game Server system.