Android向けスマホアプリを.NET MAUI Blazor Hybrid で開発するとき Three.js を使うことはできるのでしょうか? npm があれば簡単に使うことができます。

npm をインストールする

npm がないなら Node.js をインストールしましょう。npm は Node.js をインストールすると自動的にインストールされます。

ところで WindowsPowerShell で npm を使おうとすると

npm : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Program Files\nodejs\npm.ps1 を読み込むことができません。

というエラーが出るときがあります。このようなときは PowerShell で

とやれば次回以降はうまくいきます。

npm で Three.js と vite をインストールする

.NET MAUI Blazor Hybrid のプロジェクトのフォルダに移動しましょう。そこで

を実行します。

プロジェクトのフォルダ内に package.json というファイルが生成されているはずなので、これを編集します。

package.json の scripts に “build”: “vite build” を追加します。既存の scripts がある場合は削除せず、項目を追加してください。

package.json

プロジェクトのフォルダ内に vite.config.js を作成して以下のコードを書きます。

vite.config.js

Home.razor の編集

Home.razor を編集します。

Components\Pages\Home.razor

style.css の作成と編集

wwwroot フォルダ内に style.css を作成し、以下を書きます。

wwwroot\style.css

wwwroot.index.html の <head> </head> の最後に以下の行を追加して読み込めるようにしておいてください。

main.js の作成と編集

wwwrootフォルダ内に js というフォルダを作成し、そのなかに main.js を作成して以下のように書きます。

これは中央に回転している立方体を表示させるサンプルプログラムです。

wwwroot\js\main.js

npm run build の実行

WindowsPowerShell で 以下を実行します。

これで dist\main.js にファイルが生成されます。

Visual Studioのビルド時に npm run build を自動実行する

js\main.js を編集するたびに上記を手動で実行するのは地味に面倒くさいので[ビルド]ボタンを押下したら自動的にこれを実行してくれるようにします。

プロジェクト名が MauiApp ならプロジェクトフォルダ内に MauiApp.csproj があるのでこれを編集します。

</Project> の直前に以下を追加します。

MauiApp.csproj

これでビルドするたびに必要であれば npm run build も実行されます。

PCにおけるアプリの表示サイズを設定する

あと実機テストやエミュレーターを使うと重くなるので PC だけで簡単なデバッグをしたくなる場合があります。そんなときにスマホに近いサイズでアプリを表示させるにはどうすればよいでしょうか?

プロジェクトフォルダ内にある App.xaml.cs の CreateWindowメソッドを編集します。

PCの環境によってWebViewの表示領域が異なります。自分の環境では調整値として1.2を掛けています。

App.xaml.cs