Unity エディターとのインテグレーション
Author and modify Cloud Code scripts directly within the Unity Editor using the Cloud Code Authoring module.
読み終わるまでの所要時間 5 分最終更新 23日前
Cloud Code オーサリングモジュール (Cloud Code パッケージとともにインストールされる) を使用すると、任意で、スクリプトのオーサリングと変更を Unity エディター内で直接的に行うことができます。その後、Deployment パッケージ を使用して、Unity エディターから Unity Cloud Dashboard にスクリプトをアップロードできます。
Unity エディターに存在するスクリプトを使用すると、ユーザーは (クラウド内のバージョンの代わりに) ソース管理を信頼できる唯一の情報源として扱うことができ、ロールバック、二等分、その他の一般的な操作のアクションが簡略化されます。例えば、Cloud Code オーサリングモジュールは、クライアントの C# スクリプトと Cloud Code スクリプトの同期を保つなどのタスクを容易にします。
前提条件
Unity エディターで Cloud Code を使用するには、最初に Cloud Code SDK をインストールし、Unity Gaming Services プロジェクト を Unity エディターにリンクする必要があります。プロジェクトのリンク
Unity Gaming Services プロジェクト を Unity エディターにリンクします。UGS プロジェクト ID は Unity Cloud Dashboard にあります。- Unity エディターで、Edit (編集) > Project Settings (プロジェクト設定) > Services (サービス) の順に選択します。
-
プロジェクトをリンクします。
-
プロジェクトに Unity プロジェクト ID がない場合:
- Create a Unity Project ID (Unity プロジェクト ID の作成) > Organizations (組織) の順に選択し、ドロップダウンメニューから組織を選択します。
- Create project ID (プロジェクト ID を作成) を選択します。
-
既存の Unity プロジェクト ID がある場合:
- Use an existing Unity project ID (既存の Unity プロジェクト ID を使用) を選択します。
- ドロップダウンメニューから組織とプロジェクトを選択します。
- Link project ID (プロジェクト ID をリンク) を選択します。
-
プロジェクトに Unity プロジェクト ID がない場合:
UnityEditor.CloudProjectSettings.projectId必要なパッケージをインストールする
エディター内で Cloud Code スクリプトを作成するには、以下のパッケージをインストールする必要があります。- Deployment
- Cloud Code (2.1.1 以降)
これらのパッケージをインストールして、使用可能なパッケージのリストに追加するには、以下を行います。
- Unity エディターの Package Manager (パッケージマネージャー) ウィンドウで、+ (add) (+ (追加)) > Add package by name… (名前でパッケージを追加...) を選択します。
- を入力します。
com.unity.services.deployment - Add (追加) を選択します。
- これらのステップを について繰り返します。
com.unity.services.cloudcode
Unity エディター内でのオーサリング
Cloud Code オーサリングモジュールを使用すると、直接 Unity エディター内で、Cloud Code スクリプトの作成、編集、デプロイを行うことができます。スクリプトの作成
以下のステップに従い、Cloud Code オーサリングモジュールを使用して Cloud Code スクリプトを作成します。- Unity エディターで、Project (プロジェクト) ウィンドウを右クリックし、Create (作成) > Services (サービス) > Cloud Code Js Script (Cloud Code Js スクリプト) を選択します。
- C# スクリプトの場合と同様に、スクリプトに名前を付けます。Cloud Code スクリプトでは、サービスをアップロードするときに、それらのファイル名を識別子として使用します。
- Enter を押します。
新しいスクリプトが Project ウィンドウに表示されます。また、Deployment (デプロイ) ウィンドウでは、Window (ウィンドウ) > Deployment (デプロイ) を選択してアクセスできます。
スクリプトの編集
既存の Cloud Code オーサリングスクリプトを編集する方法は 2 つあります。- Project (プロジェクト) タブで、既存のスクリプトをダブルクリックします。
- Deployment (デプロイ) ウィンドウで、既存のスクリプトを探し、右クリックメニューから Open (開く) を選択します。
- Unity エディターで、Edit (編集) > Preferences... (環境設定...) > Cloud Code を選択します。
- Javascript Editor (Javascript エディター) セクションで、優先する JS エディターのアプリケーションパスを選択します。
- Apply (適用) を選択します。
- : アセットのファイルパス
$(File) - : プロジェクトディレクトリ
$(ProjectPath) - : ソリューションパス
$(SolutionPath) - : エディターの実行ファイルパス (Unity エディター内で Edit (編集) > Preferences… (環境設定...) > External Tools (外部ツール) を選択することで選択します)
$(EditorExePath)
-
JetBrains Rider (Windows 上):
- アプリケーション:
cmd.exe - 引数:
/C "$(EditorExePath) $(ProjectPath) $(File)"
- アプリケーション:
-
Microsoft Visual Studio Code:
- アプリケーション:
Code.exe - 引数:
$(ProjectPath) $(File)"
- アプリケーション:
スクリプトのデプロイ
スクリプトは Deployment (デプロイ) ウィンドウからデプロイできます。詳細については、Deployment パッケージのマニュアル を確認してください。スクリプトパラメーターの変更
Unity エディターで Cloud Code スクリプトパラメーターにアクセスして変更できます。エディターの Inspector ウィンドウでパラメーターにアクセス
Unity エディターの Project ウィンドウでスクリプトを選択することにより、Cloud Code スクリプトのパラメーターを変更できます。スクリプトのパラメーターがエディターの Inspector ウィンドウに開きます。
可能なパラメーター型は以下のとおりです。
- String
- Boolean
- Numeric
- JSON
- Any (任意)
スクリプト本文でのパラメーターの宣言
Cloud Code スクリプトでのシームレスな体験のために、各パラメーター名をキーとして、その型を値として含むparams
例を次に示します。
JavaScript
または、パラメーターが必須であることを指定したい場合は、module.exports.params = { "echo" : "Boolean" }
typerequiredデフォルトでは、パラメーターは必須ではありません。 どちらの形式も希望に応じて組み合わせることができます。 JavaScriptmodule.exports = async ({ params, context, logger }) => { return { "value": params["aParam"] };};module.exports.params = { "aParam" : { "type": "String", "required": true } }
スクリプトパラメーターを使用している場合、それらは以前に定義した Inspector パラメーターをオーバーライドします。 スクリプト内パラメーターは、パラメーターを宣言するためのよりシンプルな代替方法を提供しますが、Deployment パッケージを使用せずに更新しようとした場合、Unity Cloud Dashboard は現在スクリプト内パラメーターを解析しません。module.exports = async ({ params, context, logger }) => { var value = params["echo"] ? params["aParam"] : "default"; return { "value": value };};module.exports.params = { "echo" : "Boolean", "aParam" : { "type": "String", "required": true } }
JS バンドル
JS スクリプトは、
importrequirebundling
JavaScript
以下の例は、サンプルプロジェクトでバンドルがどのようになるかを示しています。 lib.jsmodule.exports.bundling = true;
scriptToBundle.jsmodule.exports.helloWorld = "Hello world!";
const lib = require("./lib");module.exports = async ({ params, context, logger }) => { return { "value": lib.helloWorld };};module.exports.bundling = true;
Deployment (デプロイ) ウィンドウ
Deployment (デプロイ) ウィンドウは、Deployment パッケージのコア機能です。これを使用すると、すべてのサービスが、デプロイニーズに合う 1 つのまとまったインターフェースを持つことができ、クラウドアセットをそれぞれのクラウドサービスにアップロードできます。 詳細については、Deployment パッケージのマニュアル を確認してください。Unity エディター内の Cloud Code JavaScript プロジェクト
Unity エディター内の Cloud Code JavaScript プロジェクトは、Unity プロジェクトのルートに配置され、以下の構造を持ちます。 ├──Assets│ └──
CloudCode│ └──
cloud_script.js├──
node_modules├──
package.json└──
package-lock.jsonpackage.jsonpackage.jsonpackage-lock.jsonNodeJS
開発者用の他のツールをサポートするには、開発者は NodeJS をインストールする必要があります。NodeJS では、オートコンプリートおよび開発環境に期待されるその他の機能をサポートできます。オートコンプリート
JS のオートコンプリートの大半は、型定義 プロジェクトによって処理されます。.d.ts.d.tsnode_modulespackage.jsonnode_modules外部ツール
JS プロジェクト内から適切なnpm install ...ESLint
-
を実行します。このコマンドは、ESLint をプロジェクトの依存関係に追加します。
npm i -D eslint -
プロジェクトのルートに、以下を含む ファイルを作成します:\ JSON
.eslint.json{ "env": { "commonjs": true, "es2021": true }, "extends": "eslint:recommended", "parserOptions": { "ecmaVersion": 13 }, "rules": { }} - ESLint を実行するように IDE を設定します。これは、Visual Studio Code では自動的に行われますが、IDE によっては追加の設定が必要になることがあります。
- ESLint が設定され、動作しています。
eslint:recommendedif (something == -0)Jest
Jest は、JavaScript テスト用のフレームワークです。以下は、Cloud Code スクリプトの単体テストを作成する方法の例です。-
を実行します。このコマンドにより、Jest パッケージがインストールされます。
npm install --save-dev jest -
スクリプトで実行するように Jest を設定します。
.es10 -
以下のコードスニペットを に追加します:\ JSON
package.json"jest": { "moduleFileExtensions": ["es10", "js"], "testMatch": ["**/*.test.es10"]}
moduleFileExtensionsjses10testMatch.test.es10単体テストの例
以下の JS 単体テストの例は、オブジェクトを返してから、テストスクリプトの結果が同じかどうかを確認します。より高度なオプションはモッキングで使用可能です。テストするスクリプト:
Cloud Code は以下のシグネチャを期待します。 JavaScriptmodule.exports = async ({ params, context, logger }) => { return {value: "1"};};
テストスクリプト:
JavaScriptconst test = require("./jest_01.es10")it("test",async () =>{ expect(await test({})).toMatchObject({value:"1"});});
テストの実行
コマンドラインで、以下のコマンドを使用してテストを実行します:npm run test