Unity プレーヤーのトラブルシューティングとデバッグ
Rider の Unity プロセスに接続 ダイアログには、ネットワーク上で現在実行中の Unity インスタンスがすべて一覧表示されます。 これには、Unity エディターやヘルパープロセス、スタンドアロンプレイヤーやデバイスプレイヤーなどが含まれます。 次に、USB デバイスの一覧が表示され、最後に他のプロジェクトが表示されます。 iOS USB デバイスを表示する際は、Rider がデバイスを表示しているだけであり、Unity プロジェクトが現在実行中かどうかは認識していないことに注意してください。
詳細については、 こちらのブログ記事(英語)を参照してください。

ここで現在のプロジェクトのエディターインスタンスのデバッグを開始することもできますが、 Unity エディターに接続する または Unity エディターに接続して再生 の実行構成を使用してデバッグボタンをクリックするだけで自動的にアタッチされる方が簡単です。
トラブルシューティング
デバイスがリストに表示されません
プレイヤーのデバッグを成功させるには、満たさなければならない一定の基準があります。
プレイヤーは、 開発ビルドと スクリプトのデバッグのチェックボックスを選択した状態でビルドする必要があります。 Rider は開発ビルドのみを表示しますが、スクリプトデバッグが無効になっているプレイヤーはグレー表示されます。
IL2CPP ベースのプレイヤーは、Mono デバッグプロトコルをサポートするプレイヤーを構築するために、Unity 2018.2 以上のバージョンを必要とします。
ネットワーク接続されたプレイヤーは、同じサブネット上に存在する必要があります。 たとえば、デスクトップの IP アドレスが
192.168.1.200の場合、プレイヤーの IP アドレスも192.168.1.xの範囲内である必要があります。ネットワーク接続されたプレイヤーは、ファイアウォールによってブロックされる可能性があります。 プレイヤーは実行中に UDP メッセージを継続的にブロードキャストするため、ファイアウォールによって UDP メッセージがブロックされないようにしてください。 UDP メッセージは現在のサブネット内でのみブロードキャストされるため、プレイヤーが Rider を実行しているデスクトップマシンと同じサブネット上にあることを確認してください。
iOS の USB デバッグは Mac および Linux でそのまま動作するはずですが、iTunes または Windows 上の Apple Mobile Device Service が必要です。 また、Unity のメインインストール時に iOS ビルドサポートモジュールをインストールする必要があります。
Apple Silicon 上で iOS USB デバッグを行うには、Rider 2021.3 以降のバージョンが必要です。 Rider をネイティブ Apple Silicon アプリとして実行する場合は、Unity 2021.2 以降のバージョンが必要です。 Rosetta 2 アプリとして実行される Rider は、Unity の旧バージョンでも動作します。
Nintendo Switch の開発者キットには、有線と無線の 2 つのネットワークインターフェースがあります。 UDP メッセージは Wi-Fi 接続を介して送信されるため、デバッグを行う前に両方のネットワークを設定してください。
デバッグでは、すべてのフィールドとプロパティが表示されるわけではありません。
プレーヤーやデバイスのデバッグ時には、ほとんどのデバッグ機能が利用可能ですが、プラットフォームによってビルド要件が異なるため、すべてのフィールド、プロパティ、メソッドが利用できるとは限りません。 たとえば、IL2CPP のビルドでは、未使用のコードを削除するためにコードトリミングが適用されます。 これにより、デバッガーが特定の型や型メンバーを評価できなくなる場合があります。
ブレークポイントに関連付けられたモジュールが見つかりませんでした
これは様々な理由で起こり得ます。
IL2CPP バックエンドのデバッグは、Attach(issuetracker.unity3d(英語) )経由でのみ可能です。 最初のフレームからデバッグを開始するには、env.var.
UNITY_GIVE_CHANCE_TO_ATTACH_DEBUGGER=1を使用することをお勧めします。Intel UnityEditor を使用して Apple シリコンをターゲットとするアプリをデバッグする (問題 (英語))
手動構成
Rider がプレイヤーまたはデバイスを検出できず、ダイアログに表示できない場合でも、詳細を手動で入力することでプレイヤーのデバッグを行うことができます。 プレイヤーは標準の Mono デバッグプロトコルを使用しているため、デバッグを有効にするにはホストアドレスとポート番号が必要です。 これらはプレイヤーログに記載されており、 logcat や Xcode などのツールを使用して取得できます。
詳細を指定するには、ダイアログの プレーヤーのアドレスを手動で追加する オプションを使用してください。
Mono リモートデバッグ実行構成を使用して、プレイヤーの永続的な実行構成を設定することもできます。
ファイアウォール
ファイアウォールによってはデバイスがブロックされ、Rider の Unity プロセスに接続 ダイアログに表示されない場合があります。 Mono のデバッグプロトコルは、プレイヤーが指定するポート上での単純な TCP トラフィックです。 このポートが開いている限り、デバッグは可能です。
ファイアウォールが UDP または IGMP(インターネットグループメンバーシッププロトコル)メッセージをブロックしている場合、プレーヤーがリストに表示されないことがあります。 システムファイアウォールを適切に更新してください。
macOS
macOS ファイアウォールは実際には 2 つのファイアウォールから構成されており、そのうちユーザーインターフェースを備えているのは 1 つだけです。
セキュリティとプライバシーのシステム環境設定パネルで設定できるファイアウォールは アプリケーションファイアウォール(英語)で、アプリケーションごとに受信接続を許可またはブロックできる粗粒度のファイアウォールです。 デフォルトでは無効になっています(ファイアウォールは、 不要なサービスが開いているポートで待機している場合にのみ役立つ(英語)という理由が挙げられます)が、簡単に有効にできます。 Unity プレーヤーの一覧表示に必要な UDP マルチキャストパケットをブロックすることで問題が発生する可能性は低いですが、このファイアウォールを有効にする場合は、Rider が受信接続を受け入れることができることを確認してください。 (技術的な概要は こちらの「ファイアウォール」セクション(英語)で入手できます。)
2 つ目のファイアウォールは PF パケットフィルター(英語)で、こちらははるかに柔軟性が高い。 残念ながら、デフォルト設定では Unity のプレイヤーが Rider のダイアログに表示されない場合があります。
PF はデフォルトでは無効になっていますが、システムコンポーネントによって有効にすることができます。 たとえば、アプリケーションファイアウォールでは、「すべての受信接続をブロックする」または「ステルスモードを有効にする」のチェックボックスが選択されている場合に PF が有効になります。 また、インターネット共有でも使用されるため、インターネット共有が有効になっていない場合でも PF が有効になることがあります。
pfctl -s info を呼び出すことで PF が有効になっているかどうかを確認できます(これには root 権限が必要なので、おそらく sudo pfctl -s info を使用する必要があるでしょう)。
PF の有効状態は、アプリケーションファイアウォールの状態とは独立しています。 アプリケーションファイアウォールがオフになっても PF は無効にならず、個別に制御する必要があります。
PFのデフォルト構成は /etc/pf.conf で設定されており、ルールは設定されていませんが、「アンカー」が定義されており、システムによって動的にルール(例えばインターネット共有ルール)を追加できます。 これらのアンカーは /etc/pf.anchors/com.apple で定義されています。 pfctl -s all を使用して現在のルールと統計情報を表示できますが、これは現在のアンカー(コンテナのように機能するもの)のルールのみが表示されます。 この pfdump.shスクリプトを使用して pfctl を再帰的に呼び出し、すべての定義済みルールを表示できます。
有効化されると、パケットが既存のルールに一致しない場合、そのパケットに IP オプションが含まれていない限り、許可されてファイアウォールを通過します。 man pf.conf より:
残念ながら、IGMP(インターネットグループメンバーシッププロトコル)パケットは RA IP オプション(英語)を使用するため、これらのパケットは破棄されます。 Rider(またはその他のソフトウェア)が UDP メッセージを受信するためにマルチキャストグループに参加しようとする場合、IGMP の「参加」パケットを送信する必要があります。 PF が有効になっている場合、この送信 IGMP パケットは破棄され、マルチキャストグループに参加しないため、UDP マルチキャストメッセージは受信されません。 Rider の場合、これは Unity プレーヤーがダイアログに表示されないことを意味します。
以下の設定でこの問題は解決できます。 /etc/pf.conf を変更する際は、必ず事前にバックアップを作成してください。 また、このファイルはシステムアップデート時に再作成されるため、この設定は定期的に再適用する必要があります。
/etc/pf.conf ファイルを編集して、ファイルの末尾に以下の 2 行を追加してください( pf.conf ファイルを編集するには root 権限が必要です)。
次に、以下の内容のファイル /etc/pf.anchors/unity.udp を追加します。
このルールにより、IGMP パケットの送信が許可され、あらゆるアプリケーションが 225.0.0.222 UDP マルチキャストグループに参加できるようになります。 これは、Unity プレーヤーが使用するグループです。
次に PF を再起動します。
サポート
このドキュメントで解決しない場合は、JetBrains サポート(support@jetbrains.com )までお問い合わせください。