| ▼NKanda | |
| ▼NFoundation | |
| ▼NCloud | |
| ►NAuth | |
| ►NOpenIdConnect | |
| CDeviceAuthorizationResponse | The response model from identity server after initiating Device Code login flow |
| CDeviceCodeLoginData | Information about the device code login initiation process. If successful, a user code and activation URL is provided for further action by the user |
| CErrorAuthenticationResponse | The response model from identity server while polling for Device Code activation if the code has not yet been activated, was aborted or had some other error |
| COidcTokenInfo | The payload data contained in an OIDC ID token |
| CUserAuthenticationResponse | The response model from identity server once the user is authenticated by activating the Device Code |
| CCloudAuthentication | |
| CCloudCredentials | A set of credentials for an authenticated user which can be used to access Kanda Cloud services |
| CICloudAuthentication | Implements a way to log in / log out to Kanda Cloud with OpenID Connect and getting credentials from this process for use in authenticating API requests |
| CIRefreshableCloudCredentials | A wrapper on CloudCredentials which allows for automatically or manually refreshing the credentials using its refresh token |
| CRefreshableCloudCredentials | |
| ►NEndpoints | |
| CBaseCloudEndpoint | A base class for endpoints which sets up the fundamental structure of an endpoint class |
| CCheckInEndpoint | |
| CICheckInEndpoint | |
| CIRoomServerEndpoint | |
| CRoomServerEndpoint | |
| ►NModels | |
| CCheckInPostRequest | |
| CCheckInResponse | |
| CCloudApiPage | Cloud responses for queries containing several items are paginated. This models the page serialization format and implements tools for easily getting subsequent pages |
| CCloudApiResponse | A wrapper for Cloud responses reducing the amount of boilerplate required to evaluate whether a request was successful and providing feedback when a request fails |
| CJoinRoomServerRequest | |
| CLeaveRoomServerRequest | |
| CRoomServerResponse | |
| ►NNetworking | |
| CCloudApiClient | |
| CICloudApiClient | Handles basic REST-type requests to the Cloud API by creating UnityWebRequests with the relevant data, executing these requests with UnityHttpClient and deserializing the response data |
| CIUnityHttpClient | A client to send UnityWebRequests in a way that is async-compatible |
| CUnityHttpClient | |
| CUnityWebRequestExtensions | A set of extension methods for UnityWebRequest, allowing for a natural method-chaining approach to common request configurations |
| ►NUtilities | |
| CBase64EncodingUtils | Utilities for encoding payloads to Base64 |
| CCloudUrlUtils | Utilities for getting environment- and customer-specific URLs relating to Kanda Cloud |
| CUserSettingsKeys | A collection of keys used to persist Cloud data in User Settings |
| CCloudClient | |
| CICloudClient | Provides a way to connect and interact with Kanda Cloud services |
| ▼NConnection | |
| ►NDynamicGhostLoading | |
| CDynamicGhostLoadingClientSystem | Implements a fix for mismatching ghost prefabs in server/client when dynamically loading scenes |
| ►NGoInGame | |
| ►NComponents | |
| CGoInGameCommand | An RPC command for clients requesting to "Go in Game" for a NetworkStreamConnection. For more, see the NetCode docs |
| ►NSystems | |
| CGoInGameClientSystem | A client system which initiates a "Go in Game" process with NetCode. This is later handled by the server to connect the client |
| CGoInGameServerSystem | A server system which listens for "Go in Game" requests and connects the requesting client to the session |
| ►NMonitoring | |
| ►NComponents | |
| CClientDisconnectEventData | When a client is disconnected, this component is attached to an Lifecycle.AppEvents.Components.AppEvent detailing the reason why the client was disconnected |
| CClientTimeoutEventData | When a client times out when waiting to connect to a session, this component is attached to an Lifecycle.AppEvents.Components.AppEvent |
| ►NSystems | |
| CMonitorDisconnectClientSystem | Checks for client-side disconnects by monitoring the ConnectionState component and registering an Lifecycle.AppEvents.Components.AppEvent to be handled downstream. ConnectionState is expected to be added to client connection when going in game by GoInGame.Systems.GoInGameClientSystem |
| CMonitorPlayerCountServerSystem | Checks for player joined Lifecycle.AppEvents.Components.AppEvents, calculates the total number of players in-game, and reports it to the server service |
| CMonitorTimeoutClientSystem | Monitors the NetworkStreamConnection, and if it's connecting for more than a given timeout period, a ClientTimeoutEventData Lifecycle.AppEvents.Components.AppEvent is registered |
| CConnectionService | |
| CIConnectionService | A helper service to configure NetworkStreamDrivers in ECS worlds to connect to session servers |
| CNetCodeBootstrap | This class overrides the NetCode ClientServerBootstrap, implementing a custom way of starting NetCode that serves user intent |
| ▼NDependencyInversion | |
| ►NServices | |
| CAppServiceLocator | An application-level service container which spans the lifetime of multiple scenes. If it is a root service which does not depend on others, you can register it in [RuntimeInitializeOnLoad] so it's available immediately. Otherwise, you wait for other services to be available, and register it in Awake |
| CAsyncObjectResolutionOptions | Options for async resolution of dependencies. Being able to resolve async helps overcome execution order issues in Unity |
| CIServiceContainer | A collection of one or more Kanda services |
| CServiceContainer | |
| CServiceResolutionException | Thrown when a Kanda service could not be resolved |
| ►NUnityEngineWrappers | |
| CIApplication | |
| CIDownloadHandler | |
| CIPlayerPrefs | |
| CISceneManager | Patchable abstraction for Unity SceneManager |
| CIUnityServicesSubset | |
| CIUnityWebRequest | |
| CIUploadHandler | |
| CIWithAccessibleImplementation | |
| CUnityApplicationWrapper | |
| CUnityDownloadHandlerWrapper | |
| CUnityPlayerPrefsWrapper | |
| CUnitySceneManagerWrapper | Wraps a Unity SceneManager to implement ISceneManager |
| CUnityServicesWrapper | |
| CUnityUploadHandlerWrapper | |
| CUnityWebRequestWrapper | |
| ▼NEditor | |
| ►NDistribution | |
| ►NUnityGameServer | |
| ►NModels | |
| CCcdDetails | |
| CCreateBuildVersionRequest | |
| CCreateCcdEntryRequest | |
| CCreateCcdEntryResponse | |
| CGetBuildResponse | |
| CBuildAndPublishUnityGameServerWindow | A "quick & dirty" editor tool for automating build and publish of dedicated servers to Unity Game Server Hosting. This can be made more robust by adding A/B deployments, and it can be made more predictable by moving the deployment process to a CI pipeline or a Kanda Cloud endpoint |
| ►NSettings | |
| ►NApp | |
| ►NSettingsProviders | |
| CCloudSettingsProvider | Adds CloudSettings to Kanda SDK project settings |
| CConnectionSettingsProvider | Adds ConnectionSettings to Kanda SDK project settings |
| CPlatformSettingsProvider | Adds PlatformSettings to Kanda SDK project settings |
| CUnityServicesSettingsProvider | Adds UnityServicesSettings to Kanda SDK project settings |
| CKandaSettingsProvider | A generic Unity SettingsProvider which can be used for exposing Kanda Settings in the Project Settings window |
| CEditorSettingsAssetUtils | A collection of editor utilities to read and write settings assets |
| ▼NLifecycle | |
| ►NAppEvents | |
| ►NComponents | |
| CAppEvent | App events represent occurrences in the application that should be handled by downstream systems. For example when a client is disconnected from a session, an AppEvent entity is created with a Connection.Monitoring.Components.ClientDisconnectEventData component, which can then be handled by a downstream UI system |
| CAppEventUtils | |
| ►NContentSceneLoading | |
| ►NComponents | |
| CContentSceneMetadata | Contains metadata about an entity scene to load |
| CLoadContentSceneCommand | An RPC command that signifies that a client wishes to a content scene to be loaded |
| CLoadedContentScene | Placed in the world to signify that a content scene has been loaded. This helps ensure that the initial content scene is only loaded once for clients and servers |
| CRequestedContentScene | Placed on a client connection entity to signify that a content scene has been requested |
| ►NSystems | |
| CLoadContentSceneClientSystem | When a client first goes in game, if a RequestedContentScene component has not yet been added to the client connection, it attempts to load the ILocalPlayerInfoService.SelectedContentScene and adds an entity with LoadedContentScene component for future tracking |
| CLoadContentSceneServerSystem | Handles the LoadContentSceneCommand sent by clients to requesting their initial content scene to be loaded. When this command is received, the server will check if a content scene is already loaded - If not, the content scene will be loaded and a singleton entity containing the LoadedContentScene component will be added for tracking |
| ►NServices | |
| CAppLifecycleResult | Base class to signal results of lifecycle events. This can be inherited to add additional data |
| CAppLifecycleService | |
| CEntityWorldService | |
| CHostLanSessionResult | Overrides AppLifecycleResult for LAN hosted sessions, adding the hosting Network Endpoint that LAN clients should connect to |
| CIAppLifecycleService | A service which handles application lifecycle, moving between lobby and sessions by loading scenes and instantiating relevant ECS worlds |
| CIEntityWorldService | Manages ECS worlds for various use cases in the Lobby and Sessions |
| CILocalPlayerInfoService | A service which stores local player information for consumption throughout the application lifecycle |
| CIPlatformInfoService | A utility to query information about the current runtime platform |
| CIStandardSceneService | A service which provides a means for switching between standard scenes |
| CLocalPlayerInfoService | |
| CPlatformInfoService | |
| CStandardSceneService | |
| ▼NObservability | |
| CKandaLog | A logging implementation for the Kanda SDK which provides standardized tags on top of the Unity Logging package |
| ▼NSettings | |
| ►NApp | |
| CAppSettings | |
| CCloudSettings | |
| CConnectionSettings | |
| CICloudSettings | Stores app settings about how to connect and interact with Kanda Cloud services |
| CIConnectionSettings | Stores app settings about how to connect to multiplayer sessions |
| CIKandaSettings | A tag interface for settings assets related to the Kanda SDK |
| CIPlatformSettings | Stores app settings about the current platform |
| CIUnityServicesSettings | Stores app settings about Unity Gaming Services (UGS) |
| CPlatformSettings | |
| CRuntimeSettingsAssetUtils | A collection of runtime utilities to read settings assets |
| CSettingsStandardPaths | A collection of constants defining menu and asset paths in which to place settings items |
| CUnityServicesSettings | |
| ►NUser | |
| CIUserSettingsService | Provides a way to persist user settings between application sessions. This is implemented using Unity PlayerPrefs with some handy tools for saving complex objects and sensitive data |
| CUserSettingsService | |
| ▼NUtilities | |
| ►CAsyncUtils | A collection of utilities and extensions to facilitate async programming |
| CAsyncOperationAwaiter | Custom await for a Unity AsyncOperation allowing it to be awaited in async/await context |
| CUnityWebRequestAwaiter | Custom await for UnityWebRequest allowing it to be awaited in async/await context |
| CDeploymentEnvVar | |
| CEncryptionUtils | |
| CAppServices | A utility class to handle the lifetime of app services. App services are intended to be global services which span all scenes and handle essential work such as loading settings, communicating with external services and managing application flow |
| CStartup | A main class with work intended to run on application start to configure features in this package |