Cloud Code C# modules
Modules are C# libraries that the Cloud Code service can run to give you reusable server authoritative code. Unlike Cloud Code scripts, modules allow for multiple entry points and easier code reuse within the module.
You can generate bindings for your modules from the Unity Editor to ensure that the data you transfer between the Cloud Code client and your game use the same format.
You can call modules from games built with Unity, or from any other client or server.
Authoring method | Description |
---|---|
Unity Editor | Use the Unity Editor to create and deploy modules using the deployment window, automate your workflow and deploy Cloud Code alongside other Unity services. |
Unity Gaming Services CLI | Use the CLI to deploy and manage modules from the command line. Deploy multiple Unity service configurations at once, and integrate with CI/CD. |
Unity Cloud Dashboard | Use the Unity Cloud Dashboard preview a list of deployed modules. You can access other Unity Gaming Services from the same place, such as Remote Config. |
REST API | Use the REST API to create, deploy, and manage modules. |
Cloud Code C# modules cannot use classes from the UnityEngine
namespace or anything else in the Unity's scripting API. This is because Cloud Code uses the open-source .NET runtime (up to version 9 is supported). This is separate from the Unity runtime and does not rely on any of its scripting backends.
Typical workflow
The following process details a typical development cycle:
- Create a C# library project. Create a solution in the Unity Editor, or use the UGS CLI to create a new module project.
- Write the code. Use the Cloud Code C# service SDKs to integrate with other Unity services. Use the HTTP client to integrate with external services.
- Test and debug. Create a unit test project for your module to validate that everything works as intended, or deploy the library on a development environment to test it with real user data.
- Deploy the module. Deploy the project via the Deployment window in the Unity Editor or UGS CLI or to make it available within Cloud Code.
- Integrate the module with your project. Import the Cloud Code SDK into your game and use one of the provided methods to call your script.
Getting started
Learn the basics of creating and running modules.
Topic | Description |
---|---|
Create a module | Get started with modules. |
Module structure | Learn about the structure of a module project. |
Write modules | Learn how to write modules using the Unity Editor, UGS CLI or the REST API. |
Run modules | Learn how to run modules from Unity Runtime, using REST API or from a Multiplay server. |
Error handling | Learn how handle errors in your modules. |
Logging | Learn how to use logging to debug your module. |
Limits | Learn about the limits of Cloud Code modules. |
Cost | Learn about the cost of Cloud Code modules. |
Development essentials
Learn how to structure your modules. Modules support dependency injection, DTOs, and custom serialization to make your development easier.
Topic | Description |
---|---|
Module structure | Learn about the structure of a module project. |
Dependency injection | Learn how to decouple dependencies in your code. |
Unit tests | Learn how to write unit tests for your module. |
Custom serialization | Learn how to use custom serialization using Newtonsoft.Json properties. |
Batch requests | Learn how to batch requests. |
Automate deployment
To streamline the development and deployment of your modules, you can automate the process.
Topic | Description |
---|---|
Integrate with CI/CD | Integrate the deployment of your module with your CI/CD pipeline. |
Automate local deployment | Automate the deployment of your module to the Cloud Code service. |
Integrate further
You can integrate modules with other Unity Gaming Services and any external services, and access cross-player data.
To integrate with other services using their C# SDKs, you can install NuGet
packages, or you can use a HTTP client.
Topic | Description |
---|---|
Authentication | Learn how to authenticate your game client with Cloud Code. |
Service and access token support | Learn which UGS services and access tokens Cloud Code supports. |
Available libraries | Find the available UGS SDKs included with Cloud Code modules. |
Access control | Learn how to control access and prevent unwanted usage. |
Integrate with Unity Services | Learn about connecting Cloud Code to other Unity services. |
Integrate with external services | Learn how to integrate with external services. |
Interact with cross-player data | Learn how to access and update data for other players. |
Send push messages to players | Learn how to send push messages to players. |
Triggers | Learn how to use triggers to run your modules on a schedule, or in response to events. |
Advanced configuration
If you need a more in-depth configuration for your module, you can use the following guides.
Important: These topics are for advanced users who want to optimize their module for a specific use case.
Topic | Description |
---|---|
Manual workflow | Learn how to manually create, package, and deploy your module. |
Package code | Learn how to package your module code into a .ccm file for deployment. |
Automate local deployment using the project file | Automate the deployment of your module using the project file. |
Data transfer objects | Learn how to use data transfer objects to ensure that all data transferred between the Cloud Code client and your game use the same format. |