Develop modules with a reference file
Create and deploy Cloud Code modules in the Unity Editor by linking a C# module reference file (.ccmr) to a solution.
Read time 8 minutesLast updated 2 days ago
Use the Unity Editor to create and deploy Cloud Code modules by linking a C# module reference file to a separate module solution.
The Cloud Code package contains the Cloud Code Authoring module, which allows you to use the Deployment package to interact with modules.
Prerequisites
Before you use Cloud Code in the Unity Editor, ensure you meet the following requirements.
Link project
To develop Cloud Code modules in the Unity Editor, link your project to a Unity Gaming Services project. Refer to Configure a project for Unity Cloud.
After you link the project, the Project Settings window shows your Unity Project ID in the Services tab.
You can also use the parameter to access your project ID in a Unity Editor script.
UnityEditor.CloudProjectSettings.projectIdInstall required packages
To create Cloud Code modules within the Editor, you must install the following packages:
Install the following packages by name:
com.unity.services.deploymentcom.unity.services.cloudcode
Install .NET
To deploy Cloud Code modules in the Editor, you first need to install .NET.
To set your default .NET path in the Editor, follow these steps:
- In the Unity Editor, open the Preferences window.
- On Windows, select Edit > Preferences > Cloud Code.
- On macOS, select Unity > Settings > Cloud Code.
- In the .NET development environment section, modify your .NET path to the path where you installed it.
- Select Apply.
Preview the Deployment window
The Deployment window allows you to deploy Cloud Code modules to your remote environment.
To access the Deployment window in the Unity Editor, select Services > Deployment.
To select the environment you want to deploy to, follow these steps:
- In the Unity Editor, open the Deployment window.
- Select Environment not set. After you set an environment, its name replaces this label.
- Select Environment Settings to open Project Settings > Services > Environments.
- Set the Environment.
Refer to the Deployment window for more information.
Author within Unity Editor
The installed Cloud Code package contains the Cloud Code Authoring module. This module lets you create and deploy Cloud Code modules directly from the Unity Editor by creating a module reference file and linking the file to your module project. After you configure the module reference file, the Deployment window allows you to deploy your module to the remote environment.
Create a C# Module Reference file
To get started, create a Cloud Code C# Module Reference file, which carries the extension. This file is a reference to a solution containing the C# module project you want to deploy.
.ccmr- In the Unity Editor, right-click in the Project window, then select Create > Services > Cloud Code C# Module Reference.
- Name the module reference as you would your module to avoid confusion.
- Press Enter.
The new module reference is now visible in the Project window and in the Deployment window.
To access the module reference, open the Deployment window.
Link a module
The C# Module Reference needs to be linked to a module. You can either link an existing solution or generate a new one from the Unity Editor.
Generate a new module
With a module reference file, you can generate a new module from the Deployment window. The generated module contains the required basic setup for you to start to develop your module.
- In the Unity Editor, select the module reference file in the Project window.
- In the Inspector window, select Generate Solution.
You can also generate a new module directly from the Deployment window.
- In the Unity Editor, open the Deployment window.
- Right-click on the module reference file and select Generate Solution.
This places the generated module in the root of your project directory. Cloud Code uses the reference file name to generate the default solution path.
The solution file name is the solution path Cloud Code uses to generate the module template.
For example, if you call your reference file , your default solution path might be , which creates a module under a solution file of .
test_module.ccmr../test_moduletest_module.slnLink an existing module
If you want to use a different authoring method to create a new module, refer to Develop modules.
The module reference comes with a default solution path. You should change this path to point to your existing module solution.
- In the Unity Editor, select the module reference file in the Project window.
- In the Inspector window, modify the Solution Path field to point to your existing module solution.
Generate bindings
You can generate type-safe client code from the Unity Editor. Bindings generate from the module reference file, and you can use the bindings to call the module endpoints.
A type-safe client guarantees the types used by the game-client and received by the module match, ensuring no serialization problems.
You can generate bindings from the following locations:
-
Generate from the Inspector window:
- In the Unity Editor, select the module reference file in the Project window.
- In the Inspector window, select Generate Bindings
-
Generate from the Deployment Window:
- In the Unity Editor, open the Deployment window.
- Right-click on the Cloud Code Module Reference, and select Generate Code Bindings.
-
Generate from the toolbar:
- Navigate to Services > CloudCode, and select Generate All Modules Bindings.
- This generates bindings for all existing module references.
-
Generate from Project Settings:
- In the Unity Editor, navigate to Edit > Project Settings.
- Navigate to Services > Cloud Code, and select Generate All Modules Bindings.
- This generates bindings for all existing module references.
Unity Editor generates the type-safe client code under the directory.
Assets/CloudCode/GeneratedModuleBindingsRefer to Run modules in Unity Runtime to learn how to use the generated bindings.
Limits
The bindings generation has the following limitations:
- It does not differentiate between required parameters and optional parameters.
- Tuples are not supported as parameters or the return value.
- Defining explicit values for the enum members is not supported and won't appear after binding generation.
Deploy modules
Use the Deployment window to deploy your modules.
You can also automatically deploy modules when you enter the Play mode in the Unity Editor.
The following diagram shows how a module moves through deployment. The diagram also demonstrates how a function call routes to the Cloud Code service or a local server, depending on whether the local server is running when you enter Play mode.
To deploy the module:
- In the Unity Editor, open the Deployment window.
- Select the module reference file in the Project window.
- In the Deployment window, select Deploy Selected.
Refer to the Deployment package manual for more information.
A successful deployment shows a green checkmark next to the module reference file in the Project window.
You can verify the deployment is successful by calling the module endpoints. The template module contains a default endpoint called .
SayHelloRefer to Run modules in Unity Runtime to learn how to call the module endpoints.