単純なクラウド スクリプト プロジェクトをCreateする
この記事では、Mesh Cloud Scripting を使用して単純なプロジェクトを作成して発行します。 この記事では、 システムにクラウド スクリプトを既に設定していることを前提としています。 Mesh Cloud Scripting を使用して開発を開始する前に、 Mesh ツールキットの既知の問題 の現在の一覧を理解することをお勧めします。
Mesh Cloud Scripting のインフラストラクチャと管理の詳細については、こちらを参照してください。
メッシュ クラウド スクリプトを使用してシーンをCreateする
次の手順では、ユーザーがクリックしたときに回転するキューブを使用して単純な環境を作成する方法を示します。
新しいプロジェクトCreateという名前の記事に移動するか、既存のプロジェクトを更新します。 新しいプロジェクトを作成する場合は、新しいプロジェクトCreateという名前のセクションのすべての手順に従ってください。 既存のプロジェクトを更新する場合は、既存のプロジェクトを更新するという名前のセクションで同じ操作 を行います。
新しいシーンを作成します。
シーンを保存し、名前を付けます。 この例では、 MyFirstCloudScripting という名前を使用します。
メニュー バーで、 GameObject>Mesh Toolkit>の [クラウド スクリプトのセットアップ] を選択します。
Mesh Cloud Scripting という名前のゲーム オブジェクトが階層に表示され、選択されていることに注意してください。 インスペクター ... で [アプリケーション フォルダーを開く] ボタンをクリックした場合。
...Windows エクスプローラーに、これはまた、MyFirstCloudScripting.csproj という名前の新しい ASP.NET Core プロジェクトを Assets > に作成することがわかります。MeshCloudScripting > MyFirstCloudScripting フォルダー。
シーンを変更する
メッシュ エミュレーション モードを設定します。 床として機能する GameObject をシーンに追加し、 GroundCollision レイヤーに設定してください。
メッシュ エミュレーション モードを設定すると、この時点から使用するカメラを含むシーンにプレハブ MeshEmulatorSetup[NoUpoload] が 追加されます。 既定の メイン カメラ GameObject は不要です。削除します。
メニュー バーで、[GameObject>3D オブジェクト> キューブ] を選択します。
[階層] で、Cube を Mesh Cloud Scripting オブジェクトにドラッグして、Cube をそのオブジェクトの子にします。
[キューブ] を選択した状態で、[ インスペクター] で [変換 ] コンポーネントに移動し、キューブの [位置 ] と [ 回転] の値を次のように変更します。
位置: X = 0.1、Y = 1.5、Z = 3.3。
回転: X = -15、Y = 0.8、Z = 0.1
ヒント: MeshEmulatorSetup[NoUpload] プレハブのカメラは、AvatarHead の子オブジェクトです。
インスペクターで、[コンポーネントの追加] をクリックし、[Mesh Interactable Setup]\(メッシュ対話可能セットアップ\) を選択します。
シーンを保存します。
C# プロジェクトを変更する
[階層] で、Mesh Cloud Scripting オブジェクトを選択します。
インスペクターで、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 エディタークリックします。
- [ ゲーム ] ウィンドウで、キューブをクリックします。 クリックするたびに、キューブは "X" 軸で回転します。
- 完了したら、再生モードを終了します。
Visual Studio を使用してアプリケーションをデバッグする (省略可能)
[階層] で、Mesh Cloud Scripting オブジェクトが選択されていることを確認します。
インスペクターで、Mesh Cloud Scripting コンポーネントに移動し、[アプリケーション デバッグの有効化] を選択します。
再生モードに入り、[デバッガー] を選択します。
App.cs ファイルを開き、ブレークポイントを追加して、実行を続行します。
Unityで、キューブをクリックします。
注意
既定では、2 分間非アクティブになると、アプリケーションはタイムアウトします。 このウィンドウを増やすには、マニフェスト ファイルに値を設定 "debugTimeoutSecs"
します (例: "debugTimeoutSecs": "240"
)。
環境をビルドして発行する
環境をビルドして発行するには、環境の ビルドと発行 に関する記事の手順に従います。
Unity からクラウド スクリプト サービスに接続する
注意
これは、 ServiceMode が Dev に設定されている場合にのみ使用できます。
- [階層] で、Mesh Cloud Scripting オブジェクトが選択されていることを確認します。
- インスペクターで、Mesh Cloud Scripting コンポーネントに移動し、[開発者向け設定] ドロップダウンを開きます。
- [ ローカル クラウド スクリプト サーバーの実行] の選択を解除します。
- [Unity エディター再生] ボタンをクリックします。
イベントをCreateし、Mesh アプリから参加させる
- 作成して発行した環境を使用してイベントをCreateします。 ガイダンスが必要な場合は、 Mesh ポータルでイベントを作成する方法に関するページを参照してください。
- Mesh アプリでイベントに参加します。
Microsoft Mesh アプリケーションで Mesh Cloud Scripting Service エラーを表示する (省略可能)
Cloud Scripting Service からのエラー メッセージは、ユーザーの中断を最小限に抑えるために、既定では Mesh アプリには表示されません。 デバッグ目的でこれらのメッセージを表示する必要がある場合は、次の手順を使用します。
Mesh アプリを開きます。
[ メニュー ] ボタンをクリックし、[設定] を選択 します。
左側のメニュー バーで、[ 開発者向け] を選択します。
[ Show Mesh scripting error]\(メッシュ スクリプト エラーの表示 \) ボタンを "on" に切り替えます。