# Cloud Code

> Write and run server-side code on a fully managed infrastructure that scales automatically to meet your traffic demands.

Cloud Code は、コードを記述してクラウド内で実行できるサーバーレスコンピューティングサービスです。Unity の Cloud Code を使用して、フルマネージのインフラストラクチャ上でステートレスなサーバーサイドのコードを記述できます。Cloud Code は、トラフィックの需要を満たすために自動的にスケールされるフルマネージサービスです。ゲームロジックの開発に集中し、それをクライアントから分離して不正行為を防止できます。

Cloud Code は、[Remote Config](/remote-config.md)、[Cloud Save](/cloud-save.md)、[Economy](/economy.md)、[Leaderboards](/leaderboards.md) などの他の Unity サービスとの統合と完全に互換性があります。

Cloud Code を他の Unity サービスとともに使用して、ゲームロジックを安全に保ったまま、完全なゲームバックエンドを作成したり、[ゲーム内経済](/economy.md)、[プレイヤーデータのストレージ](/cloud-save.md)、[動的設定](/remote-config.md) などのソリューションをデプロイしたりできます。

> **Note:**
>
> Cloud Code C# モジュールは、`UnityEngine` 名前空間または \[Unity のスクリプティング API] の他の場所からのクラスを使用できません。これは、Cloud Code がオープンソース \[.NET ランタイム] を使用するからです。これは Unity Runtime から分離されており、その \[スクリプティングバックエンド] のいずれにも依存しません。

## Cloud Code を使用した解決策##solutions-with-cloud-code

| 問題                                                                                                      | 解決策                                                            |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| プレイヤーにインストールの更新を要求するクライアント更新をロールアウトせずに、ライブゲームにコードをデプロイする必要があります。                                        | Cloud Code を使用して、プレイヤーが更新する必要なしにゲームロジックを更新します。                 |
| 悪意のあるプレイヤーがクライアントコードの変更、状態の変更、または不正行為を行えないようにする必要があります。プレイヤーがゲームロジックのリバースエンジニアリングを行うことを防ぐ必要もあります。       | Cloud Code を使用して、ゲームロジックが安全なサンドボックス内で実行され、クライアントから分離されるようにします。 |
| 複数のオンラインサービスを使用する必要がありますが、ゲームの反応が遅くなることは望ましくなく、他のサーバーサイドコンポーネントと統合するときにゲームクライアントで簡単に記述できるようにしたいと考えています。 | Cloud Code を活用して、他の Unity サービスと統合し、複数のコンポーネント内で結び付くコードを記述します。  |
| インフラストラクチャを管理して、ゲームロジックを実行し、トラフィックの需要を満たすようにスケールする必要があります。                                              | Cloud Code を使用して、フルマネージのインフラストラクチャ上でステートレスなサーバーサイドのコードを記述します。  |
| ゲームがトラフィックを受信していないときに、未使用リソースの料金を支払いたくありません。                                                            | Cloud Code を使用して、使用するものに対してのみ支払うようにします。                        |
| 認証や互換性を考慮せずに、複数のコンポーネント内で結び付くコードを記述するソリューションが必要です。                                                      | Cloud Code を使用して、互換性が組み込まれた他の Unity サービスと統合するコードを記述します。        |

## Cloud Code のサンプル##cloud-code-samples

以下のチュートリアルでは、特定の結果を得るために、Cloud Code トリガーを他の UGS 製品と組み合わせて使用する方法を説明します。

> **Note:**
>
> **ノート**: より高度なサンプルプロジェクトについては、[UGS ユースケースのサンプルプロジェクト](/services/solutions/use-cases-project.md) を参照してください。

| チュートリアル                                                                                   | サービス                                                                                 |
| :---------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------- |
| [シーズンの終わりにゲーム内通貨で上位プレイヤーに報酬を与える](/triggers/tutorials/use-cases/reward-top-players.md)     | [Leaderboards](/leaderboards.md)[Economy](/economy.md)                               |
| [新規にサインアップしたプレイヤーのデフォルト設定値での初期化](/triggers/tutorials/use-cases/initialize-new-players.md) | [認証](/authentication.md)[Cloud Save](/cloud-save.md)                                 |
| [スコアが破られたプレイヤーにプッシュメッセージを送信する](/triggers/tutorials/use-cases/higher-score-message.md)     | [Leaderboards](/leaderboards.md)                                                     |
| [参加ロビー内のすべてのプレイヤーにレベルアップをアナウンスする](/triggers/tutorials/use-cases/announce-level-up.md)     | [Cloud Save](/cloud-save.md)[Lobby](/lobby.md)                                       |
| [個々のプレイヤーに合わせてゲームの難易度を調整する](/triggers/tutorials/use-cases/tune-game-difficulty.md)        | [Cloud Save](/cloud-save.md)[Leaderboards](/leaderboards.md)[認証](/authentication.md) |

## モジュールおよびスクリプトでの Cloud Code の使用##use-cloud-code-with-modules-and-scripts

ゲームから Cloud Code を呼び出すには、統合された Unity SDK を使用するか、Unity エディターの外部で作業する必要がある場合は Cloud Code Client API を使用できます。

Cloud Code では、2 種類のコードがサポートされます。Cloud Code C# モジュールと Cloud Code JavaScript スクリプトです。

ニーズに適合する方法を選択するには、以下の概要を確認してください。

|                 | Cloud Code C# モジュール                                                                  | Cloud Code JavaScript スクリプト                                                              |
| --------------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------- |
| **ランタイム**       | .NET 9                                                                               | Node.js 14                                                                               |
| **言語**          | C#                                                                                   | JavaScript                                                                               |
| **デプロイ**        | [エディター][modules-editor]、[コマンドライン][CLI-modules] または [Admin API][AAPI-modules]。        | [エディター][scripts-editor]、\[ダッシュボード]、[コマンドライン][CLI-scripts]、または [Admin API][AAPI-scripts]。 |
| **実行**          | [SDK][SDK-modules] または [ランタイム API][CAPI-modules]。                                    | [SDK][SDK-scripts] または [ランタイム API][CAPI-scripts]。                                        |
| **外部ライブラリサポート** | [NuGet パッケージマネージャー][NuGet-packages] および [パブリックインターネットエンドポイント][External-APIs-modules] | [パブリックインターネットエンドポイント][External-APIs]。                                                    |

> **Note:**
>
> Cloud Code C# モジュールは、`UnityEngine` 名前空間または \[Unity のスクリプティング API] の他の場所からのクラスを使用できません。これは、Cloud Code がオープンソース \[.NET ランタイム] を使用するからです。これは Unity Runtime から分離されており、その \[スクリプティングバックエンド] のいずれにも依存しません。

[scripts-editor]: /cloud-code/3.0.0/scripts/how-to-guides/write-scripts/unity-editor

[modules-editor]: /cloud-code/3.0.0/modules/how-to-guides/write-modules/unity-editor

[CLI-modules]: /cloud-code/3.0.0/modules/how-to-guides/write-modules/cli#deploy-modules

[CLI-scripts]: /cloud-code/3.0.0/scripts/how-to-guides/write-scripts/cli#deploy-scripts

[AAPI-modules]: /cloud-code/3.0.0/modules/how-to-guides/write-modules/rest-api#deploy-modules

[AAPI-scripts]: /cloud-code/3.0.0/scripts/how-to-guides/write-scripts/rest-api#deploy-scripts

[CAPI-modules]: /cloud-code/3.0.0/modules/how-to-guides/run-modules/rest-api

[CAPI-scripts]: /cloud-code/3.0.0/scripts/how-to-guides/run-scripts/rest-api

[SDK-modules]: /cloud-code/3.0.0/modules/getting-started#deploy-the-module

[SDK-scripts]: /cloud-code/3.0.0/scripts/getting-started#deploying-hello-world

[NuGet-packages]: /cloud-code/3.0.0/modules/how-to-guides/external-services-integration

[External-APIs]: /cloud-code/3.0.0/scripts/how-to-guides/external-services-integration

[External-APIs-modules]: /cloud-code/3.0.0/modules/how-to-guides/external-services-integration

## Cloud Code インターフェース##cloud-code-interfaces

アプリケーションを Cloud Code と統合して管理するには、複数の方法があります。

| インターフェース                                                                                                                                                    | サポート                    | 説明                                                  | 使用方法                                                                                                                                                                                                                                                    |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Cloud Code SDK                                                                                                                                              | スクリプトとモジュール。            | Unity プロジェクトを Cloud Code と統合するためのソフトウェア開発キット (SDK)。 | SDK を使用して、Unity Runtime から [モジュールエンドポイントを呼び出す](/cloud-code/3.0.0/modules/how-to-guides/run-modules/unity-runtime.md) か [スクリプトを呼び出し](/cloud-code/3.0.0/scripts/how-to-guides/run-scripts/unity-runtime.md) ます。                                           |
| [Unity Dashboard](/services/unity-dashboard-introduction.md)                                                                                                | スクリプトおよび制限付きモジュールのサポート。 | Cloud Code の設定を管理するためのウェブベースのインターフェース。              | スクリプトの [作成](/cloud-code/3.0.0/scripts/how-to-guides/write-scripts/unity-dashboard.md)、プレビュー、および [テスト実行](/cloud-code/3.0.0/scripts/how-to-guides/test-run.md) と [モジュールのプレビュー](/cloud-code/3.0.0/modules/how-to-guides/write-modules/unity-dashboard.md)。 |
| [Unity Gaming Services コマンドラインインターフェース](https://services.docs.unity.com/guides/ugs-cli/latest/cloud-code/Cloud%20Code%20Command%20Line/overview/index.html) | スクリプトとモジュール。            | Cloud Code の設定を管理するためのコマンドラインインターフェース。              | Cloud Code を CI/CD に統合し、ファイルベースのワークフローをイテレートして、Cloud Code を他の Unity サービスと一緒にデプロイします。                                                                                                                                                                    |
| [Cloud Code Admin API](https://services.docs.unity.com/cloud-code-admin)                                                                                    | スクリプトとモジュール。            | Cloud Code のスクリプトとモジュールを管理するための REST API。           | REST API を使用して、Cloud Code スクリプトとモジュールを作成、読み取り、更新、および削除します。                                                                                                                                                                                              |
| [Cloud Code Client API](https://services.docs.unity.com/cloud-code)                                                                                         | スクリプトとモジュール。            | Cloud Code のスクリプトとモジュールエンドポイントを呼び出すための REST API。    | API 呼び出しを通じて Cloud Code スクリプトとモジュールを呼び出し、Unity エディターの外部の製品と統合します。                                                                                                                                                                                       |
| [デプロイ](/services/ugs-cli-introduction.md#deployments)                                                                                                       | スクリプトとモジュール。            | Unity エディターと UGS CLI の拡張機能。                         | デプロイを使用して、Cloud Code を Unity Dashboard ではなくファイルで設定します。バージョン管理の一部としてこれらのファイルを追加し、Unity Dashboard でのコンテキストの切り替えを最小限に抑えます。                                                                                                                                 |

コードのデプロイと実行の方法を理解するには、[次のステップの実行](#take-the-next-step) セクションのオプションのどれかに従います。

## 次のステップの実行##take-the-next-step

| ### Cloud Code C# モジュールタイプセーフプログラミング言語と強力な .NET コンポーネントを使用して、サーバーサイドコードを記述します。NuGet のようなツールを使用して、プロジェクトバンドル動的リンクライブラリ (DLL) 内の必要な他のコンテンツを消費します。[Cloud Code C# モジュールの使用を準備します。](/cloud-code/3.0.0/modules/overview.md)                                                                     |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ### Cloud Code JavaScript スクリプトサーバーサイドコードを簡単に記述して言語をイテレートします。JavaScript フロントエンドバックグランドから来た場合は、同じエコシステムを利用します。Cloud Code コマンドラインですぐに使用可能なサポートされる CommonJS および ECMAScript モジュールシステムを通じて、コードを再利用可能な部分とバンドルします。[Cloud Code JavaScript スクリプトの使用を準備します。](/cloud-code/3.0.0/scripts/overview.md) |
