Unity エディターとのインテグレーション
Author and modify Cloud Code scripts directly within the Unity Editor using the Cloud Code Authoring module.
読み終わるまでの所要時間 24 分最終更新 5ヶ月前
Cloud Code オーサリングモジュール (Cloud Code パッケージとともにインストールされる) を使用すると、任意で、スクリプトのオーサリングと変更を Unity エディター内で直接的に行うことができます。その後、Deployment パッケージ を使用して、Unity エディターから Unity Dashboard にスクリプトをアップロードできます。
Unity エディターに存在するスクリプトを使用すると、ユーザーは (クラウド内のバージョンの代わりに) ソース管理を信頼できる唯一の情報源として扱うことができ、ロールバック、二等分、その他の一般的な操作のアクションが簡略化されます。例えば、Cloud Code オーサリングモジュールは、クライアントの C# スクリプトと Cloud Code スクリプトの同期を保つなどのタスクを容易にします。
前提条件
Unity エディターで Cloud Code を使用するには、最初に Cloud Code SDK をインストールし、Unity Gaming Services プロジェクト を Unity エディターにリンクする必要があります。
プロジェクトのリンク
Unity Gaming Services プロジェクト を Unity エディターにリンクします。UGS プロジェクト ID は Unity 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 が表示され、プロジェクトが Unity サービスにリンクされました。また、 を使用して 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 (開く) を選択します。
デフォルトでは、Cloud Code スクリプトはデフォルトの JavaScript エディターに開きます。
デフォルトの JavaScript エディターを設定するには、以下を行います。
- 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" }
または、パラメーターが必須であることを指定したい場合は、 と の両方のプロパティを含むオブジェクトを指定できます。
typerequiredJavaScript
module.exports = async ({ params, context, logger }) => { return { "value": params["aParam"] };};module.exports.params = { "aParam" : { "type": "String", "required": true } }
デフォルトでは、パラメーターは必須ではありません。
どちらの形式も希望に応じて組み合わせることができます。
JavaScript
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 } }
スクリプトパラメーターを使用している場合、それらは以前に定義した Inspector パラメーターをオーバーライドします。
スクリプト内パラメーターは、パラメーターを宣言するためのよりシンプルな代替方法を提供しますが、Deployment パッケージを使用せずに更新しようとした場合、Unity Dashboard は現在スクリプト内パラメーターを解析しません。
JS バンドル
JS スクリプトは、 または キーワードを使用してローカルスクリプトまたは外部モジュールをインポートできます。バンドルプロセスでは、スクリプトを入力として使用し、バンドル結果を Unity Dashboard にフィードします。このプロセスは、ローカルファイルを変更しません。
importrequireスクリプトでバンドルを有効にするには、 オブジェクトをエクスポートし、値を true に設定します。このプロセスはスクリプトごとです。デフォルトでは、スクリプトはバンドルされません。バンドルを有効にした場合、スクリプトは Deployment ウィンドウ を介したデプロイの前にバンドルされます。
bundlingJavaScript
module.exports.bundling = true;
以下の例は、サンプルプロジェクトでバンドルがどのようになるかを示しています。
lib.js
module.exports.helloWorld = "Hello world!";
scriptToBundle.js
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 のオートコンプリートの大半は、型定義 プロジェクトによって処理されます。 ファイルを使用して、型定義された API を定義することで、JavaScript ファイルを強化できます。ほとんどのパブリック JS ライブラリには、独自の ファイルが含まれるか、型定義内で定義されたものがあります。
.d.ts.d.tsエディターで依存関係のオートコンプリートを有効にするには、依存関係の型定義を特定できる必要があります。これは、 を参照することで行います。オートコンプリートを有効にするには、 ファイルを使用して適切なファイルを にインストールします。
node_modulespackage.jsonnode_modules外部ツール
JS プロジェクト内から適切な コマンドを実行して、外部ツールを追加できます。次に、公式なツールガイドラインに従って、これらのツールを設定できます。
npm install ...ESLint と Jest の以下の例を考えてみましょう。
ESLint
-
を実行します。このコマンドは、ESLint をプロジェクトの依存関係に追加します。
npm i -D eslint -
プロジェクトのルートに、以下を含むファイルを作成します:\
.eslint.jsonJSON{ "env": { "commonjs": true, "es2021": true }, "extends": "eslint:recommended", "parserOptions": { "ecmaVersion": 13 }, "rules": { }} -
ESLint を実行するように IDE を設定します。これは、Visual Studio Code では自動的に行われますが、IDE によっては追加の設定が必要になることがあります。
-
ESLint が設定され、動作しています。
ESLint が動作していることをテストするには、有効だが ルールセットに違反しているコードを追加します。例えば、 では IDE に ESLint 警告が表示されます。
eslint:recommendedif (something == -0)Jest
Jest は、JavaScript テスト用のフレームワークです。以下は、Cloud Code スクリプトの単体テストを作成する方法の例です。
-
を実行します。このコマンドにより、Jest パッケージがインストールされます。
npm install --save-dev jest -
スクリプトで実行するように Jest を設定します。
.es10 -
以下のコードスニペットをに追加します:\
package.jsonJSON"jest": { "moduleFileExtensions": ["es10", "js"], "testMatch": ["**/*.test.es10"]}
moduleFileExtensionsjses10testMatch.test.es10単体テストの例
以下の JS 単体テストの例は、オブジェクトを返してから、テストスクリプトの結果が同じかどうかを確認します。より高度なオプションはモッキングで使用可能です。
テストするスクリプト:
Cloud Code は以下のシグネチャを期待します。
JavaScript
module.exports = async ({ params, context, logger }) => { return {value: "1"};};
テストスクリプト:
JavaScript
const test = require("./jest_01.es10")it("test",async () =>{ expect(await test({})).toMatchObject({value:"1"});});
テストの実行
コマンドラインで、以下のコマンドを使用してテストを実行します: 。
npm run test