Version: 2022.1
言語: 日本語
UDP トラブルシューティング
XR

Unity Accelerator

概要

The Unity Accelerator is a caching proxy agent that keeps copies of a team’s imported assets to speed up teamwork. The goal of the accelerator is to help teams reduce iteration time. An Accelerator coordinates asset sharing when your team is working on the same local network so that you don’t need to reimport portions of your project. This is done via the Asset Import Pipeline v2 Unity Editor capabilities.

ローカルネットワークに Accelerator をインストールすると、Unity エディター (バージョン 2019.3 以降 (後述の Unity エディター 要件 を参照) が Accelerator と通信し、他のチームメンバーが必要としたり、変更や作成を行ったアセットの保存や取得を行います。Accelerator はこれらのアセットの一時的なコピーを保存し、アセットを取得したり再インポートしたりするための時間と帯域幅の無駄を防ぎます。

Accelerator の概要
Accelerator の概要

項目

Accelerator のインストール

要件

ローカルホスティングの要件

チームが定期的に作業する各ネットワークに Accelerator をインストールします。ローカルネットワーク上に、Accelerator をホストすることができるマシンが必要です。ホストを選択する際には、以下の要件を考慮してください。

  • ローカルホストが以下の OS のいずれかを実行している必要があります。
    • Linux (Ubuntu 16.04、Ubuntu 18.04、または CentOS 7)
      Linux の場合、Acccelerator をルートユーザーとしてインストールする必要があります。
    • Windows Server 2008R2 / Windows 7 以上 (64 ビット)
    • Mac OS X 10.12 以上 (64 ビット)
  • ローカルホストには、プロジェクトのほとんどのファイルをホストするのに十分なローカルストレージスペースが必要です。できれば、オペレーティングシステムをホストするドライブとは別のソリッドステートドライブ (SSD) に保存してください。
  • ローカルホストには、手頃な価格でできるだけ多くのメモリを搭載する必要があります。最低でも 2 GB の RAM が必要ですが、より多くのメモリが利用可能であれば、キャッシュしたアイテムをオペレーティングシステムがバッファリングを行うために使用でき、よくアクセスされるアイテムのパフォーマンスが向上します。通常の推奨値は 32 GB の RAM です。
  • ローカルホストがチームと同じネットワークに接続されている必要があります。または、Accelerator の IP アドレスとポート (TCP) へのアクセスを許可する適切なファイアウォールポリシーを持ちローカルのルーティングが可能である必要があります。
  • ホストマシンにアクセスできる人は、Unity Organization (組織) 内の権限構造に関わらず、プロジェクトのファイルにアクセスできます。そのため、Unity では、Organization Owner (所有者) または Manager (管理者) のみが Accelerator にアクセスして操作できるように、そのマシンを制限することをお勧めします。

Unity エディターの要件

Unity プロジェクトは、Unity エディターのバージョン 2019.3 以降を使用している必要があります。

インストーラーによる Accelerator のインストール

You can download and install Unity Accelerator directly and uncheck the registration token during installation:

ノート: Accelerator を Linux システムにインストールする場合は、Accelerator バージョンの確認 を参照してください。

また、Docker Hub から Accelerator をインストールすることもできます。

“ヘッドレス” マシンへ Accelerator をインストール

各プラットフォームで、コマンドラインからインストーラーを実行できます。インストーラーの引数に --help を指定して実行すると、利用可能なさまざまなオプションが表示されます。プロンプトを表示せずに完全なインストールを実行するには、以下の値を指定する必要があります。

  • --storagedir ファイルや設定を保存する Accelerator のディレクトリを設定します。
  • --registration-token specifies the token provided in the developer dashboard after creating the Accelerator.
  • --mode 何もクエリしない無人の自動インストールを行います。これには、デフォルト値、または提供された他のオプションフラグの値が使用されます。
  • Mac OS X では、ディスクイメージ (DMG) をマウントし、インストーラーアプリケーションのディレクトリにあるバイナリを実行する必要があります (場所は Contents/MacOS/installbuilder.sh)。

Accelerator 使用のためのエディター設定

Accelerator をインストールすると、設定ウィザードの最後のステップで、エディターで参照する IP アドレスと Port が以下の形式で表示されます。

[IP]:[Port]

Asset pipeline version 2 Cache Server として Accelerator を使用するようにエディターを設定するには、以下の手順を行います。

  1. Unity エディターで、Edit > Project Settings… (Windows) または Unity > Project Settings… (OSX) を選択します。
  2. 左メニューから Editor を選択します。
  3. Cache Server セクションで、ModeEnabled に設定します。
  4. IP address に、設定ウィザードで設定した Accelerator の IP アドレスを記入します。
  5. Check Connection ボタンを押して、接続をテストします。
Project Settings
Project Settings

他のプロジェクトと分離したい場合は、オプションでデフォルトとは異なる名前空間プレフィックスを選択することができます。また、必要に応じてアップロードやダウンロードを個別に利用不可にすることもできます。例えば、ビルドシステムではアップロードのみを可能にし、開発者用のエディターではダウンロードのみを可能にすることができます。なお、TLS/SSL オプションは、2020.1 以降のエディターバージョンにのみ搭載されており、Accelerator にも TLS の設定が必要です。

エディターのメインビューでは、右下のステータスバーを見ることで、Accelerator の接続状態を確認することができます (2020.1 以降のエディターバージョンのみ)。

プロジェクトの接続性
プロジェクトの接続性

必要に応じて、グローバル設定を通して使用するように Accelerator を設定できます。グローバル設定は、 Project Settings によってオーバーライドされない限り、すべてのプロジェクトでデフォルトで使用されます。グローバル設定を行うには、Edit > Preferences… メニュー項目を選択します。

Project 接続性
Project 接続性

Docker Hub による Accelerator のインストール

コンテナは Docker Hub(https://hub.docker.com/repository/docker/unitytechnologies/accelerator) で提供されています。

最初の設定

Unityでは、Accelerator の設定やキャッシュを保持するために、永続的なストレージを使用することを推奨しています。初めてこの設定を行うには、コンテナを最初に実行する際に、以下の変数を 1 つ以上使用する必要があります (以下に例を示します)。これらの変数は、スタートアップが設定 (configuration) ファイルを見つけられなかった場合にのみ使用されるので、連続して実行する際にに設定したまま実行しても問題ありません。

変数 使用方法
DISABLE_USAGE_STATS 使用状況の統計情報を無効にするには、true を設定します。使用状況の統計情報を有効にしておくと、Unity に貴重なフィードバックを与え、Accelerator の機能やパフォーマンスを向上させることができます。
USER ローカルのビルトインダッシュボードのユーザー名。
PASSWORD ローカルのビルトインダッシュボードのパスワード。
CERT_HOSTNAME TLS サポートに使用するホスト名。これはリダイレクトなどに使用され、後述の CERT_PEM と KEY_PEM に対応します。
CERT_PEM TLS サポートに使用する cert.pem へのパス。CERT_HOSTNAME を設定し、CERT_PEM を設定しない場合は、<persist_dir>/cert.pem が想定されます。
KEY_PEM TLS サポートに使用する key.pem へのパス。CERT_HOSTNAME を設定し、KEY_PEM を設定しない場合は、 <persist_dir>/key.pem が想定されます。

To override TLS settings, ensure you have your cert.pem and key.pem in the /agent path specified and then include a CERT_HOSTNAME like this:

$ docker run --rm -ti -v "${PWD}/agent:/agent" -e 'CERT_HOSTNAME=myhostname.com' -e 'COLLAB_REGISTRATION_TOKEN=ft0bJvbRD' unitytechnologies/accelerator:latest

後続の実行

また、Accelerator が通常認識する環境変数を設定することもできます。unity-accelerator --all-help を参照し、Default: $SOME_VARIABLE を示すオプションを探してください。自身で設定しなくてもコンテナが設定するものが 2 つあります。

変数 使い方
UNITY_ACCELERATOR_PERSIST コンテナのデフォルトは /agent です。このディレクトリには、unity-accelerator.cfg やその他の永続的なデータ (cachedir が異なる場合があります) が格納されます。
UNITY_ACCELERATOR_LOG_STDOUT コンテナのデフォルトは true です。これが true の場合、stdout (標準出力) のみにログを出力します。実際のログファイルを persist ディレクトリ内に書きたい場合は、false を指定します。

コンテナの実行

docker イメージに署名しているので、Docker Content Trust を有効にすること を強く推奨します。

$ export DOCKER_CONTENT_TRUST=1

通常は、以下のようにして Accelerator を実行できます。

$ docker run -p 80:80 -p 443:443 -p 10080:10080 -v "${PWD}/agent:/agent" unitytechnologies/accelerator:latest

ただし、Accelerator が環境設定やキャッシュされたアーティファクトを保存する場所を別の場所にしたい場合は、以下のように環境変数設定値を追加することができます。

$ docker run -p 80:80 -p 443:443 -p 10080:10080 -v "${PWD}/agent:/mnt/another_spot" -e "UNITY_ACCELERATOR_PERSIST=/mnt/another_spot" -e "UNITY_ACCELERATOR_DEBUG=true" unitytechnologies/accelerator:latest

ローカルダッシュボードのユーザー名とパスワードを設定するには、環境変数 USER と PASSWORD を使用します。

$ docker run -p 80:80 --env PASSWORD=[PASSWORD] --env USER=[USERNAME] unitytechnologies/accelerator:latest

公開されたポート

Unity Accelerator が使用するポートのデフォルト値は、80、443、10080、1043 です。

ソースアセットの安全性

Unity Teams Advanced と併用すると、各 Accelerator には、組織へのアクセス許可を証明する独自のセキュリティ証明書が発行されます。Accelerator がコンテンツをアップロードまたはダウンロードする前に、リクエストを出した Unity エディターは SSL/TLS を使って Accelerator に安全に接続し、その信憑性を検証します。Unity エディターが Accelerator を発見して接続する際、通常の Unity ユーザートークンを渡す代わりに、Unity エディターから特別なトークンを受け取ります。Unity Identity サービスから特別なトークンを受け取ります。これらのトークンは、ユーザーの ID と組織内の単一プロジェクトへのアクセスを検証します。それにより、Accelerator 使用中の他の組織やプロジェクトへのアクセスを保護します。

また、Unity エディターの起動時に、コマンドライン引数 を使って、Accelerator Cache Server の設定情報を提供することもできます。

Accelerator Cache Server の使用を指定するには、-EnableCacheServer 引数を使用します。アドレスとポート番号を指定するには、-cacheServerEndpoint Address:Port を使用し、アドレスとポートをキャッシュサーバーの詳細に置き換えます。

ノート: Accelerator Cache Server では、プロジェクトが Asset Database V2 (ADB2) を使用する必要があります。コマンドラインから Unity を起動する際に、-adb2 を使って ADB2へのアップグレードを強制することができます。

詳細は、コマンドライン引数 を参照してください。

Accelerator の監視

ローカル管理者ダッシュボード

Accelerator には、、迅速な確認や設定変更を行うためのビルトインのダッシュボードがあります。

Accelerator の設定
Accelerator の設定

ダッシュボードの URL を確認する方法については、コマンドラインツール のセクションを参照してください。ただし、Accelerator の IP とポートがわかる場合は、http://ip:port/dashboard を使用するだけで、Accelerator が必要なリダイレクトをすべて処理します。指標を完全に確認するには、、Accelerator 指標に直接アクセス を参照してください。また、Accelerator の完全な設定は、unity-accelerator.cfg ファイルで行うことができます。

Accelerator の指標に直接アクセスする

Each Accelerator hosts Prometheus metric reports as /metrics, which you can query from the local network. The following is a full list of metrics that you can access:

指標 説明 
process_resident_memory_bytes Accelerator が使用するメモリの量です。
uta_agent_sys_cpu_percent システムが使用する CPU の量です。
uta_agent_sys_mem_bytes_used システムによって使用されるメモリ量です。
uta_agent_protobuf_connects Unity エディターがアセットインポートパイプラインのサービスに接続した回数。
uta_agent_protobuf_bytes_in アセットインポートパイプラインから受信したバイト数。
uta_agent_protobuf_bytes_out アセットインポートパイプラインに送信されたバイト数。
uta_agent_protobuf_requests{code="0",method="get"} アセットインポートパイプラインに送られたアイテムの数。
uta_agent_protobuf_requests{code="1",method="get"} アセットインポートパイプラインに送られたアイテムから発生したエラーの数。
uta_agent_protobuf_requests{code="2",method="get"} アセットインポートパイプラインに送られたアイテムから発生した名前空間エラーの数。
uta_agent_protobuf_requests{code="3",method="get"} キャッシュされていないアイテムに対してアセットインポートパイプラインから行われたリクエストの数。
uta_agent_protobuf_requests{code="0",method="put"} アセットインポートパイプラインから受け取ったアイテムの数。
uta_agent_protobuf_requests{code="1",method="put"} アセットインポートパイプラインから受け取ったアイテムから発生したエラー数。
uta_agent_protobuf_requests{code="2",method="put"} アセットインポートパイプラインから受信したアイテムに発生した名前空間エラー数。
uta_agent_protobuf_requests{code="0",method="delete"} アセットインポートパイプラインからのアイテム削除のリクエスト数。
uta_agent_protobuf_requests{code="1",method="delete"} アセットインポートパイプラインがアイテムを削除する際に発生したエラー数。
uta_agent_protobuf_requests{code="2",method="delete"} アセットインポートパイプラインによるアイテム削除リクエストから発生した名前空間エラーの数。
uta_agent_protobuf_requests{code="3",method="delete"} キャッシュされていないアイテムのアセットインポートパイプラインから送信されたアイテムを削除するリクエスト数。
uta_agent_cache_bytes_evicted_unscheduled “予定外” のパスでキャッシュからエビクション (立ち退き) されたバイト数。予定外のエビクションは、リクエストの処理中にディスクスペースが足りなくなった場合に発生します。通常、スケジュールされたバックグラウンドでのエビクションは、需要に間に合います。そのため、このマトリクスの値が増加すると、サーバーに負荷がかかっていることになります。設定の CacheMinFreeBytes や CacheMinFreePercent を増やすことで、より多くの空きスペースバッファを確保できる可能性があります。または、基礎となるハードウェアをアップグレードしたり、追加のAccelerator をインストールしたりする必要があるかもしれません。
uta_agent_cache_files_evicted_unscheduled 上記の uta_agent_cache_bytes_evicted_unscheduled 指標に似ていますが、バイト数ではなく、エビクションしたファイルを数えます。これはアラートを出すのに簡単な指標になります。例えば、ファイルの指標が 1 秒あたり 1 を超えて増加した場合にアラートを出します。
uta_agent_protobuf_cache_hits キャッシュから提供されたアセットインポートパイプラインリクエストの数。
uta_agent_protobuf_cache_misses キャッシュから提供できなかったアセットインポートパイプラインリクエストの数。
uta_agent_protobuf_cache_bytes_out キャッシュからアセットインポートパイプラインに提供されたバイト数。
uta_agent_protobuf_cache_bytes_in アセットインポートパイプラインから受け取ったキャッシュに格納されたバイト数。

Unity エディターログのデバッグ

The Unity Editor logs are useful for viewing debugging information.

The block below shows an example log output for the Accelerator using Asset Import Pipeline v2.

2019-10-07T11:34:51-0700 Using Asset Import Pipeline V2.
  ...
  2019-08-08T09:04:03-0700 Start importing Assets/Scenes/tame-the-unicorn.png guid(07a0d449dcaef4d2ba104e9d9b350de6)
  2019-08-08T09:04:05-0700 Done importing asset: 'Assets/Scenes/tame-the-unicorn.png' (target hash: 'd5fddd470dd9beedcd7261b6455e436a') in 1.082988 seconds
  2019-08-08T09:04:05-0700 RemoteAssetCache::AddArtifactToCacheServer - artifactKey='Guid(07a0d449dcaef4d2ba104e9d9b350de6) Importer(-1,)' Target hash='d5fddd470dd9beedcd7261b6455e436a'

Querying for cacheable assets in Cache Server:
    86ac778e1a44c9143864797ddacf8cc9:Assets/New Material.mat
RemoteAssetCache - Download - Metadata - success:true, namespace:81e94844d19a16919208533e08183531, key:8d71d5006046bb9d5e4a7172eec3f3b2
RemoteAssetCache - Download - Artifact - success:true, namespace:78b2fdc254b0a4f8a4693a81bb96598a, key:de1eef03efd25a722d1500658bf19038 for asset:'Assets/New Material.mat', time elapsed: 0.005171 seconds
RemoteAssetCache - Download - Artifact - success:true, namespace:78b2fdc254b0a4f8a4693a81bb96598a, key:b19c9d64967a9691abecdb66364ae392 for extension:'Assets/New Material.mat.info', time elapsed: 0.004721 seconds

Accelerator サービスの停止と再起動

Accelerator は、各プラットフォームのバックグラウンド処理として動作します。

Windows

Services Panel を開くには、“設定” メニューで “Services” を検索するか、Run ダイアログ (WIN + R) で “services.msc” を実行します。次に、結果のリストの中から “Unity Accelerator” サービスを探します。左側のパネルに Stop the service または Restart the service というオプションが表示されます。

Mac OS X

ターミナルから launchctl コマンドを実行して、LaunchControl ユーティリティから “com.unity.accelerator” サービスを制御することができます。詳細については、https://www.launchd.info/ を参照してください。

Linux

“unity-accelerator” サービスの制御には、 service コンソールユーティリティを使用します。詳細は、http://manpages.ubuntu.com/manpages/bionic/man8/service.8.html 参照してください。

メンテナンス

Accelerator サービスは、メンテナンス期間中に自動的に更新されます。メンテナンス期間は、Accelerator が動作しているマシンの現地時間午前 1 時 - 2 時に設定されています。これは、Accelerator により新しいバージョンが可能な場合にのみ行われます。

Accelerator のインストールとアンインストールのログは、OS の標準の temp ディレクトリに unity-accelerator-*install.log として保存されます。Accelerator のログは unity-accelerator.log としてストレージディレクトリに保存されます。

コマンドラインツール

Accelerator には、トラブルシュート、設定、および 1 つまたは複数の Accelerator を一般的に使用するために使用できる、多数のコマンドラインツールがあります。使いやすくするために、unity-accelerator の実行ファイルの場所を PATH に追加することを推奨します。実行ファイルは、インストーラーの実行時に選択したパス (例えば C:\Program Files\Unity\accelerator など) にインストールされます。

CLI ツールには充実したヘルプシステムが用意されています。すぐに使い始めるには、unity-accelerator を引数なしで実行します。

$ unity-accelerator
Unity Accelerator v1.0.524+g96c5e18

Run on a local network to speed up transactions with Unity Services.

.....

また、unity-accelerator --all-help を実行すると、すべてのコマンドのヘルプテキストを一度に出力することができます。出力を less を通して pipe するか、出力をテキストファイルにリダイレクトして出力するのが良いでしょう。

特定の Accelerator を再設定するなどの特定の作業をする場合は、作業ディレクトリを unity-accelerator.cfg ファイルがある場所と同じディレクトリに変更するのが最善です。 UNITY_ACCELERATOR_PERSIST 環境変数をそのディレクトリに設定したり、 --persist<dir> オプションを常に使用することを忘れないようにすることもできます。しかし、大抵、作業ディレクトリの変更が最も簡単な方法です。

よく使われているのが、ダッシュボードツールです。

$ unity-accelerator dashboard password newaccount
Password: ****
   Again: ****
$ unity-accelerator dashboard list
admin
newaccount
$ unity-accelerator dashboard url
http://172.18.37.249:8080/dashboard/

最後の dashboard url は、ビルトインダッシュボードにアクセスするためにブラウザーに入力する URL を調べるのに便利です。

複数の Accelerator をミラーリング

必要に応じて、同じキャッシュデータをミラーリングするように複数の Accelerator を設定することができます。高可用性のために、同じネットワーク上でミラーリングされた 2 つの Accelerator を動作させることもできます。一方の Accelerator がクラッシュしたり、ハードウェア障害が発生したり、何らかの理由でメンテナンスが必要になった場合に、もう一方の Accelerator がそれを補うことができます。例えば、メインオフィスのデータをブランチオフィスにミラーリングし、ブランチオフィスでもキャッシュデータのコピーを使用できるようにするなどです。

今のところ、ミラーリング機能は、“プッシュ” や “フォワード” とも呼ばれる、データを発信する機能のみを提供しています。複数の Accelerator にプッシュ/フォワードすることができ、さらにそれらを連鎖させることもできます。例えば、A から B へ送信、B から C へ送信、そして C から A に送り返すこともできます。チェーンがサークル状になることを心配する必要はありません。アイテムにはタイムスタンプが押されているので、受信側の Accelerator は、すでに持っているアイテムよりも古いアイテムが入ってきても無視します。

ここでは、アクセラレーター A が ip:portが1.1.1.1:1111 で、アクセラレーター B が 2.2.2.2:2222 の場合を例に説明します。どちらも最初はデータがないとします。そこで、A にアイテムを入れます。B にはアイテムがありません。

$ echo test1 | unity-accelerator cache put 1.1.1.1:1111 namespace1 key1
$ unity-accelerator cache get 1.1.1.1:1111 namespace1 key1
test1
$ unity-accelerator cache get 2.2.2.2:2222 namespace1 key1
key not found

では、A が B に転送するように設定しましょう。A の設定を変更します。アクセラレーター A が動作しているマシンにログインし、アクセラレーターをシャットダウンします。

# Shutdown Accelerator A
$ cd <directory where unity-accelerator.cfg is>
$ unity-accelerator config set ProtobufForwardPuts protobuf:2.2.2.2:2222
# Start Accelerator A back up

これで、A のキャッシュに別のアイテムを入力でき、B に転送されたのを確認できます。

$ echo test2 | unity-accelerator cache put 1.1.1.1:1111 namespace2 key2
$ unity-accelerator cache get 1.1.1.1:1111 namespace2 key2
test2
$ unity-accelerator cache get 2.2.2.2:2222 namespace2 key2
key not found
# It will take up to a minute before the forwarding occurs, due to how the algorithm works with batching, etc. But within a minute or two you should see...
$ unity-accelerator cache get 2.2.2.2:2222 namespace2 key2
test2

ただし、これは新しいデータのみを対象としており (アクセラレーター A に入れられた新しいアイテムは、アクセラレーター B に転送されます)、既存のデータは対象としていません。この例では、最初のアイテムはまだアクセラレーター B にありません。

$ unity-accelerator cache get 2.2.2.2:2222 namespace1 key1
key not found

このような場合や、すべてのデータを 1 度だけ転送したい場合 (Accelerator を新しい Accelerator に切り替えるときなどに便利) には、“push” コマンドラインツールを使用できます。

$ unity-accelerator cache push 1.1.1.1:1111 2.2.2.2:2222
{"msg":"push completed", "destination":"2.2.2.2:2222", "namespaces":2, "keys":2, "bytes":12, "supercededs":1, "errors":0, "elapsed":"44.054078ms"}
$ unity-accelerator cache get 2.2.2.2:2222 namespace1 key1
test1

プッシュツールは、第 1 の Accelerator にリクエストを送信し、すべてのデータを第 2 の Accelerator に送信するように依頼します。それが完了すると、第 1 Accelerator は、何が行われたかの詳細を含む “プッシュ完了” の応答を送り返します。

unity-accelerator config help | less を実行し、Forward を検索するさらに高度な設定オプションがあります。転送の同時実行、キューのサイズ、エラー処理などを指定できます。

また、ミラーリングされた各 Accelerator の MaintenanceStart および MaintenanceDuration の設定値を変更して、すべての Accelerator がメンテナンスのために同時にシャットダウンしないようにすることもできます。

トラブルシュート

Accelerator をインストールしたにもかかわらず、一部の Unity エディターがそれを使用していない場合、いくつかの要因が考えられます。以下のトラブルシュートを参考にしてください。

使用しているUnity エディターのバージョンの確認

Accelerator を使用するには、各プロジェクトコントリビューターがエディターバージョン 2019.3 以上を使用している必要があります。

ユーザーが Accelerator のローカルネットワーク上にいることを確認

Accelerator が、問題が発生しているプロジェクトのコントリビューターと同じローカルエリアネットワーク上で動作していることを確認してください。Accelerator は、リモートで作業しているコントリビューターには影響しません。

Accelerator の接続をテスト

Check if the machine experiencing issues can reach the Accelerator.

Enter the Accelerator’s host IP address into the following URL path to display its health page:

[AcceleratorIP]:[AcceleratorPort]/api/agent-health

テストに失敗した場合は、すべてのホストとネットワークのファイアウォールが Accelerator のリッスン IP アドレスとポート (TCP) へのアクセスを許可していることを確認してください。このポートへのアクセスを許可するために、ネットワーク管理者に連絡する必要があるかもしれません。

Accelerator のバージョンを確認

Linux システムに Accelerator をインストールする場合、すべての Linux 実行ファイルには署名ファイルがあり、ダウンロードした Accelerator バージョンが悪意のある団体によって改ざんされていないことを確認することができます。署名ファイルは、GnuPG の信頼できるバージョンで検証することができます。以下のキーは、現在のリリースを署名しています。このキーを含む公開鍵ブロックは、https://collab-accelerator.cloud.unity3d.com/ で入手できます。

pub     rsa4096 2019-12-02
Key fingerprint = 9BC4 B04D F2E8 74E5 64AA 47E7 6D44 3B8B 002C F61F
uid       Unity Technologies ApS (Accelerator signing key) <sst-ops@unity3d.com>

GPG ストアにキーをダウンロードするには、以下のいずれかのコマンドを使用します。

$ gpg --keyserver https://collab-accelerator.cloud.unity3d.com/ --search-key "sst-ops@unity3d.com"

$ gpg --keyserver https://collab-accelerator.cloud.unity3d.com/ --recv-key 9BC4B04DF2E874E564AA47E76D443B8B002CF62F

インストールした Accelerator のバージョンがオリジナルで、変更されていないことを確認するには、ファイルの署名を確認します。

Accelerator のインストールファイルには、https://storage.googleapis.com/unity-accelerator-prd/unity-accelerator-installer.sig で入手できる署名ファイルが付属しています。この署名ファイルを使って、Accelerator のインストーラーを確認してください。

$ gpg --verify unity-accelerator-installer.sig unity-accelerator-linux-x64-installer.run

キーを信頼する前に、フィンガープリントを “偽造されたキーまたは信頼されていないキー” に表示されているものと比較します。 キーを信頼すると、次のように表示されます。

gpg: Signature made Thu Jan 16 12:29:14 2020 PST
gpg:                using RSA key 9BC4B04DF2E874E564AA47E76D443B8B002CF61F
gpg: Good signature from "Unity Technologies ApS (Accelerator signing key) <sst-ops@unity3d.com>" [ultimate]

これは、署名が有効であり、このキーを信頼したことを意味します。

不適切なキー

正しい配布キーを持っていない場合、上記コマンドの出力は以下のようになります。

gpg: Signature made Thu Jan 16 12:29:14 2020 PST
gpg:                using RSA key 9BC4B04DF2E874E564AA47E76D443B8B002CF61F
gpg: Can't check signature: No public key

この場合、前述の手順でキーを取得する必要があります。

偽造されたキーや信頼できないキー

有効な署名付きのキーのコピーを持っていても、そのキーが信頼済みとマークされていなかったり、キーが偽造されていたりすると、出力は以下のようになります。

gpg: Signature made Thu Jan 16 12:29:14 2020 PST
gpg:                using RSA key 9BC4B04DF2E874E564AA47E76D443B8B002CF61F
gpg: Good signature from "Unity Technologies ApS (Accelerator signing key) <sst-ops@unity3d.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 9BC4 B04D F2E8 74E5 64AA  47E7 6D44 3B8B 002C F61F

キーが偽造されている場合は、署名ファイルを使ってフィンガープリントを確認する必要があります。 キーが信頼済みとしてマークされていない場合は、キーを編集して信頼済みとしてマークします。詳細については、https://www.gnupg.org/gph/en/manual/x334.html を参照してください。

サポート

アセットインポートパイプラインを使用した Accelerator に関するお問い合わせは、Accelerator forums を参照してください。

UDP トラブルシューティング
XR