単純なクラウド スクリプト プロジェクトを作成する
この記事では、Mesh Cloud Scripting を使用して単純なプロジェクトを作成して発行します。 この記事では、システムで既にクラウド スクリプト 設定していることを前提としています。 Mesh Cloud Scripting を使用して開発を開始する前に、 Mesh ツールキットの既知の問題 の現在の一覧を理解することをお勧めします。
Mesh Cloud Scripting インフラストラクチャと管理の詳細については、こちらを参照してください。
メッシュ クラウド スクリプトを使用してシーンを作成する
次の手順では、ユーザーがクリックしたときに回転するキューブを使用して単純な環境を作成する方法を示します。
Create new または既存のプロジェクトを更新するという名前の記事に移動します。 新しいプロジェクトを作成する場合は、 新しいプロジェクトの作成という名前のセクションのすべての手順に従ってください。 既存のプロジェクトを更新する場合は、 Update 既存のプロジェクトを更新するという名前のセクションに対して同じ操作を行います。
新しいシーンを作成します。
シーンを保存し、名前を付けます。 この例では、名前 MyFirstCloudScriptingを使用します。
メニュー バーで、 GameObject>Mesh Toolkit>Set-up Cloud Scripting を選択します。
Mesh Cloud Scripting という名前のゲーム オブジェクトが Hierarchy に表示され、選択されていることに注意してください。 アプリケーション フォルダーを開く Inspector ...
...Windows エクスプローラーでは、Assets > にMyFirstCloudScripting.csproj という名前の新しい ASP.NET Core プロジェクトも作成されます。MeshCloudScripting > MyFirstCloudScripting フォルダー。
シーンを変更する
メッシュ エミュレーションを使用して再生モードを設定。 床として機能するゲームオブジェクトをシーンに追加し、 GroundCollision レイヤーに設定してください。
メッシュ エミュレーションを使用して再生モードを設定すると、この時点から使用するカメラを含むシーンにプレハブ MeshEmulatorSetup[NoUpoload] が追加されます。 既定の Main カメラ GameObject は不要です。削除してください。
メニュー バーで、 GameObject>3D オブジェクト>Cubeを選択します。
Hierarchyで、Cube を Mesh Cloud Scripting オブジェクトにドラッグして、Cube をそのオブジェクトの子にします。
[キューブ] が選択された状態で、 Inspector で Transform コンポーネントに移動し、キューブの Position と Rotation の値を次のように変更します。
位置: X = 0.1、Y = 1.5、Z = 3.3。
回転: X = -15、Y = 0.8、Z = 0.1
ヒント: MeshEmulatorSetup[NoUpload] プレハブの Camera は、AvatarHead の子オブジェクトです。
Inspectorで、[コンポーネント追加] をクリックし[操作可能なセットアップのメッシュ]を選択。
シーンを保存します。
C# プロジェクトを変更する
Hierarchyで、Mesh Cloud Scripting オブジェクトを選択します。
Inspectorで、Mesh Cloud Scripting コンポーネントに移動し、アプリケーション フォルダーを開く ボタンをクリックします。 エクスプローラーが開き、プロジェクトの内容のビューが表示されます。
コード エディターで
App.cs
スクリプトを開きます。App クラスには、次の 2 つの変数があることに注意してください。
private readonly ILogger<App> _logger; private readonly ICloudApplication _app;
3 番目の変数として次を追加します。
private float _angle = 0;
StartAsync メソッドには、"ここでアプリのスタートアップ コードを追加する" という 1 つのコメントが含まれています。StartAsync メソッドが次のようになるように、次のコードに置き換えます。
public Task StartAsync(CancellationToken token) { // First we find the TransformNode that corresponds to our Cube gameobject var transform = _app.Scene.FindFirstChild<TransformNode>(); // Then we find the InteractableNode child of that TransformNode var sensor = transform.FindFirstChild<InteractableNode>(); // Handle a button click sensor.Selected += (_, _) => { // Update the angle on each click _angle += MathF.PI / 8; transform.Rotation = new Rotation { X = 1, Y = 0, Z = 0, Angle = _angle }; }; return Task.CompletedTask; }
作業内容を保存します。
アプリケーションをローカルで実行する
- Unity で[Unity Editor Play]\(Unity エディターの再生\) ボタンをクリックします。
- Game ウィンドウで、キューブをクリックします。 クリックするたびに、キューブは "X" 軸で回転します。
- 完了したら、再生モードを終了します。
Visual Studio を使用してアプリケーションをデバッグする (省略可能)
Hierarchyで、Mesh Cloud Scripting オブジェクトが選択されていることを確認します。
Inspectorで、Mesh Cloud Scripting コンポーネントに移動し、 [アプリケーション デバッグの有効化]を選択します。
再生モードに入り、デバッガーを選択します。
App.cs ファイルを開き、ブレークポイントを追加して、実行を続行します。
Unity で、キューブをクリックします。
Note
既定では、アプリケーションは 2 分間の非アクティブ状態の後にタイムアウトします。 このウィンドウを大きくするには、マニフェスト ファイルに "debugTimeoutSecs"
値を設定します (例: "debugTimeoutSecs": "240"
)。
環境をビルドして発行する
環境をビルドして発行するには、 Build の指示に従って、環境を発行します 。
Unity からクラウド スクリプト サービスに接続する
Note
これは、 ServiceMode が Dev に設定されている場合にのみ使用できます。
- Hierarchyで、Mesh Cloud Scripting オブジェクトが選択されていることを確認します。
- Inspectorで、Mesh Cloud Scripting コンポーネントに移動し、Developer Settings ドロップダウンを開きます。
- Run Local Cloud Scripting Server の選択を解除します。
- Unity エディターの [再生] ボタンをクリックします。
Mesh アプリからイベントを作成して参加させる
- 作成して発行した環境を使用してイベントを作成します。 ガイダンスが必要な場合は、Mesh ポータルでイベントを 作成する方法を参照してください。
- Mesh アプリでイベントに参加します。
Microsoft Mesh アプリケーションで Mesh Cloud Scripting Service エラーを表示する (省略可能)
ユーザーの中断を最小限に抑えるために、Cloud Scripting Service からのエラー メッセージは既定では Mesh アプリには表示されません。 デバッグ目的でこれらのメッセージを表示する必要がある場合は、次の手順を使用します。
Mesh アプリを開きます。
Menu ボタンをクリックし、Settings を選択します。
左側のメニュー バーで、 [開発者向け] を選択します。
Show Mesh スクリプト エラーボタンを "オン" に切り替えます。