| ▼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 | Used to perform check-ins, signalling that the app is actively using Kanda Cloud |
| CIRoomContainerEndpoint | Used to list, create and modify Room Containers |
| CIRoomInstanceEndpoint | Used to list, create and modify Room Instances |
| CIRoomServerEndpoint | Used to join, leave and modify Room Servers |
| CIScenarioEndpoint | Used to get or create Scenarios for use in sessions |
| CITenantEndpoint | Used to obtain information about Tenants that a user is associated with |
| CIUserProfileEndpoint | Used to get or update information about a user's profile |
| CRoomContainerEndpoint | |
| CRoomInstanceEndpoint | |
| CRoomServerEndpoint | |
| CScenarioEndpoint | |
| CTenantEndpoint | |
| CUserProfileEndpoint | |
| ►NModels | |
| CCheckInPostRequest | Request to "check in" this device to Kanda Cloud |
| CCheckInResponse | Response after checking in |
| 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 |
| CCreateRoomContainerRequest | Request model for creating new Room Containers |
| CCreateRoomInstanceRequest | Request model used when creating new Room Instances |
| CCreateScenarioRequest | Request model for creating a new Scenario |
| CIResponseWithTags | Response models such as RoomContainerResponse and ScenarioResponse that contain tags can implement this interface to allow for more polymorphic handling of tags when dealing with objects fetched from the cloud API. Instead of |
| CJoinRoomServerRequest | Request model used when joining a Room Server |
| CLeaveRoomServerRequest | Request model used when leaving a server |
| CLogoutRequest | Request model for logging out a user |
| CRoomContainerBase | Room Containers represent a grouping of Room Instances. This represents a "Session" in the broader sense which may bundle one or more separate rooms |
| CRoomContainerResponse | Response model when getting, creating or modifying Room Containers |
| CRoomInstanceBase | Room Instances represent an individual room that can be joined. One room will typically be associated with one server running the session |
| CRoomInstanceResponse | The response model when getting or modifying Room Instances |
| CRoomServerHostingContext | This data is injected to dedicated servers when allocated by Kanda Cloud, assigning them credentials that allows for temporarily call cloud endpoints to update room server data |
| CRoomServerResponse | Response model when joining, leaving or modifying Room Servers |
| CScenarioBase | Scenarios determine the content to be loaded for a given room instance |
| CScenarioResponse | Response model when getting or creating Scenarios |
| CScenarioVersion | Scenarios can be versioned, with different content for each version |
| CTenantResponse | Response model for Tenants. These represent an organisation in Kanda Cloud and data is typically segregated by Tenant |
| CUnityGameServerConfiguration | Used to let the joining app decide which server configuration to use when hosting with Unity Multiplay |
| CUpdateRoomInstanceRequest | Request model used when modifying existing Room Instances |
| CUpdateRoomServerRequest | Sent by room servers to update information about the currently running server instance |
| CUpdateUserProfileRequest | Request model for updating User Profile |
| CUserProfileBase | User Profiles contain information about the currently logged in user |
| CUserProfileResponse | Response model for User Profiles |
| ►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 |
| CCloudApiRequestFailedException | Thrown when a Kanda Cloud API request failed |
| CCloudApiResponseUtils | Utilities for processing Kanda Cloud API responses |
| CCloudUrlUtils | Utilities for getting environment- and customer-specific URLs relating to Kanda Cloud |
| CConnectivityUtils | |
| CGracefulStringEnumConverter | Graceful string to enum converter that does not throw an exception if a value cannot be parsed. Instead, it returns the Enum's default value, which is the one with value = 0. The converter also respects legacy naming of enum values using JsonPropertyAttribute |
| ►CLocalPlayerSettingsKeys | A collection of keys used to persist Cloud data in Player Settings |
| CPCSettings | |
| CScenarioUtils | Utilities for processing Scenarios |
| CSessionUtils | Utilities for processing sessions / Room Containers |
| CSharedTagUtils | Utilities for processing shared tags |
| CCloudClient | |
| CICloudClient | Provides a way to connect and interact with Kanda Cloud services |
| ▼NConnection | |
| ►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 | Periodically counts all entities with NetworkStreamInGame to determine the total number of players in-game, and reports it via the MultiplayServerService |
| CMonitorTimeoutClientSystem | Monitors the NetworkStreamConnection, and if it's connecting for more than a given timeout period, a ClientTimeoutEventData Lifecycle.AppEvents.Components.AppEvent is registered |
| ►NNetCodeOverrides | |
| CDynamicGhostLoadingClientSystem | Implements a fix for mismatching ghost prefabs in server/client when dynamically loading scenes |
| ►NNetworkDrivers | |
| CClientHostedRelayDriverConstructor | When connecting to Relay in client-hosted sessions, we override the default network driver using NetCode's DefaultDriverBuilder |
| CServerHostedRelayDriverConstructor | When connecting to Relay in server-hosted sessions, we override the default network driver so that servers connect to the Relay via UDP and clients can connect via UDP or Websockets |
| 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. This runs on application startup to bootstrap the required NetCode worlds |
| ▼NDependencyInversion | |
| ►NOverrides | |
| CIOverrideService | |
| COverrideService | |
| CServiceOverrideAttribute | Marks a class as an override for a service |
| ►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 |
| CIUnityAuthenticationServicesWrapper | |
| CIUnityRelayService | An abstraction of Unity's IRelayServiceSDK, allowing for mocking under test |
| CIUnityServicesWrapper | |
| CIUnityVivoxServicesWrapper | |
| CIUnityWebRequest | |
| CIUploadHandler | |
| CIWithAccessibleImplementation | |
| CUnityApplicationWrapper | |
| CUnityAuthenticationServicesWrapper | |
| CUnityDownloadHandlerWrapper | |
| CUnityPlayerPrefsWrapper | |
| CUnityRelayServiceWrapper | An implementation of IUnityRelayService which wraps access to the IRelayServiceSDK singleton instance |
| CUnitySceneManagerWrapper | Wraps a Unity SceneManager to implement ISceneManager |
| CUnityServicesWrapper | |
| CUnityUploadHandlerWrapper | |
| CUnityVivoxServicesWrapper | |
| CUnityWebRequestWrapper | |
| ▼NEditor | |
| ►NDistribution | |
| ►NScenarios | |
| CCreateEmptyScenarioWizard | ScriptableWizard for creating a new Scenario in Kanda Cloud |
| ►NUnityGameServer | |
| ►NAPI | |
| ►NModels | |
| CBuild | |
| CBuildConfiguration | BuildConfiguration response by getbyid endpoint |
| CBuildConfigurationListResponse | BuildConfiguration response returned by list endpoints |
| CBuildVersion | |
| CCcdDetails | |
| CConfigurationItem | |
| CCreateBuildConfigurationRequest | |
| CCreateBuildRequest | |
| CCreateBuildVersionRequest | |
| CCreateCcdEntryRequest | |
| CCreateCcdEntryResponse | |
| CFleet | Fleet response by getbyid endpoint |
| CFleetBuildConfiguration | |
| CFleetListResponse | Fleet response returned by list endpoints |
| CFleetUsageSetting | |
| CUpdateBuildConfigurationRequest | API request model for PUT endpoint |
| CUpdateFleetRequest | API request model for PUT endpoint |
| CUnityGameServicesClient | |
| CBuildAndPublishUnityGameServerWindow | Editor tool for automating build and publish of dedicated servers to Unity Game Server Hosting. Support updating existing builds and deploy a new cloud builds |
| ►NObservability | |
| CKandaLogEditor | |
| ►NSettings | |
| ►NApp | |
| ►NSettingsProviders | |
| CCloudSettingsProvider | Adds CloudSettings to Kanda SDK project settings |
| CLifecycleSettingsProvider | Adds Kanda.Foundation.Settings.App.ILifecycleSettings to Kanda SDK project settings |
| CPlatformSettingsProvider | Adds PlatformSettings to Kanda SDK project settings |
| CPlayerSettingsBuildProcessor | This class runs the Pre- and Post-Build process to disable device mocking for builds and reenable it |
| 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 |
| ►NPhysics | |
| CPhysicsLayerMatrixConstants | A collection of collision matrix mappings used by PhysicsLayerValidation |
| CPhysicsLayerValidation | |
| ►NURPSettingsValidators | |
| CRenderTopUrpValidation | |
| ►NValidator | |
| CProjectValidationRuleSource | Indicates a static method that provides a collection of SettingsValidationRule |
| CSettingsValidationProvider | |
| CSettingsValidationRule | |
| CValidatorSetup | Defines set of validation rules required for Foundation package |
| CEditorSettingsAssetUtils | A collection of editor utilities to read and write settings assets |
| ►NTools | |
| ►NMultiplayerSession | |
| CMultiplayerSessionEditorWindow | Editor tool for quickly joining/hosting sessions |
| ►NUtils | |
| CUIToolkitExtensions | |
| ▼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 |
| CContentSceneRef | Represents the content scene used for a session. This helps ensure that the initial content scene is only loaded once for clients and servers |
| CLoadContentSceneCommand | An RPC command that signifies that a client wishes to a content scene to be loaded |
| CPreloadedContentSection | Placed on content scene sections which have finished preloading. This is used to track if all relevant sections of the content scene is ready to be activated |
| CRequestContentScenePreload | Placed adjacent to ContentSceneRef by content scene load systems to request it be preloaded by the content scene streaming system |
| CRequestedContentScene | Placed on a client connection entity to signify that a content scene it requested a content scene for the server |
| ►NSystems | |
| CContentSceneStreamingSystem | Prevents a content scene from "popping in" by first preloading the content, signalling it's ready to activate, and then activating the scene when the application is ready |
| CLoadContentSceneClientSystem | When a client first goes in game, if a RequestedContentScene component has not yet been added to the client connection, it attempts to preload the ILocalPlayerInfoService.SelectedContentScene and adds an entity with the ContentSceneRef 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 ContentSceneRef component will be added for tracking |
| ►NServices | |
| ►NSessionStrategies | |
| ►NImplementations | |
| CDefaultLanSessionStrategy | Default implementation of LAN sessions. We create server and client worlds for the LAN host and create only client world for joiners. In both cases we load the session scene, and connect to the given host, either localhost or other player IP on the network |
| CDefaultLobbyStrategy | Default implementation of lobby navigation. When going to the lobby, we stop relevant session services, set up lobby ECS worlds and load the lobby scene |
| CDefaultOfflineSessionStrategy | Default implementation of offline sessions. We create both client and server worlds, load the session scene and connect the worlds on localhost |
| CDirectServerSessionJoiningStrategy | Implements a way to directly join a dedicated server knowing its IP and port |
| CKandaCloudServerSessionJoiningStrategy | Implements a way of joining servers by first resolving the Room Server using Kanda Cloud, and then connecting to it using either DirectServerSessionJoiningStrategy or UnityRelayServerSessionJoiningStrategy |
| CUnityRelayClientSessionStrategy | Implements a way of hosting and joining session using Unity Relay. When a host uses Host a relay server is allocated and a produces a "join code" that others may use. Others may Join this session using a join code |
| CUnityRelayServerSessionJoiningStrategy | Implements a way to join a server-hosted session using Unity Relay |
| CUnsupportedServerHostingStrategy | To avoid complexity in downstream classes, this is intended to get injected on platforms that are not supported by Unity Multiplayer APIs |
| ►NInterfaces | |
| CILanSessionStrategy | A way to host or join a LAN-hosted session |
| CILobbyStrategy | A way to navigate to the lobby |
| CIOfflineSessionStrategy | A way to host an offline (single-player) session |
| CIRelaySessionStrategy | A way to host or join a client-hosted session with a join-code based relay |
| CIServerSessionHostingStrategy | A way to host a server session (used by dedicated servers) |
| CIServerSessionJoiningStrategy | A way to join a server-hosted session |
| ►NUtilities | |
| CRelayUtils | A collection of helpers to set up connectivity for sessions using Unity Relay |
| CSessionStrategyConstants | |
| 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 |
| CHostRelayServerResult | Overrides AppLifecycleResult for Relay hosted sessions, adding the join code that Relay clients should use to connect |
| 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. These values are intended to be set during early login and lobby flows, then consumed in sessions |
| 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 |
| ▼NPhysics | |
| ►NUtilities | |
| CStandardPhysicsLayerInfo | A container for standard layer info allowing easy access to its target name and index |
| CStandardPhysicsLayerUtils | A set of utilities for working with standard physics layers |
| ▼NSettings | |
| ►NApp | |
| CAppSettings | |
| CCloudSettings | |
| CICloudSettings | Stores app settings about how to connect and interact with Kanda Cloud services |
| CIKandaSettings | A tag interface for settings assets related to the Kanda SDK |
| CILifecycleSettings | Stores app settings about how to connect to multiplayer sessions |
| CIPlatformSettings | Stores app settings about the current platform |
| CIUnityServicesSettings | Stores app settings about Unity Gaming Services (UGS) |
| CLifecycleSettings | |
| CPlatformSettings | |
| CPortRange | Specifies a range of ports to use when connecting to local sessions |
| 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 | |
| ►NPlayer | |
| CILocalPlayerSettingsService | Provides a way to persist player settings between application sessions. This is implemented using Unity PlayerPrefs with some handy tools for saving complex objects and sensitive data |
| CLocalPlayerSettingsService | |
| ▼NUnityCloud | |
| ►NServices | |
| CIUnityCoreService | Provides core functionality for managing Unity services |
| CUnityCoreService | |
| ▼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 |
| CClipboardUtils | Utility to use the system's clipboard |
| CDeploymentEnvVar | |
| CEncryptionUtils | |
| CSemanticVersion | |
| ▼NVoice | |
| CIVoiceService | Provides functionality for managing voice communication services |
| CVoicePermissionUtils | |
| CVoiceService | |
| 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 |