JetBrains Rider 2026.1 Help

Unity プレーヤーのトラブルシューティングとデバッグ

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

詳細については、 こちらのブログ記事(英語)を参照してください。

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 より:

allow-opts By default, IPv4 packets with IP options or IPv6 packets with rout- ing extension headers are blocked. When allow-opts is specified for a pass rule, packets that pass the filter based on that rule (last matching) do so even if they contain IP options or routing extension headers. For packets that match state, the rule that initially created the state is used. The implicit pass rule that is used when a packet does not match any rules does not allow IP options.

残念ながら、IGMP(インターネットグループメンバーシッププロトコル)パケットは RA IP オプション(英語)を使用するため、これらのパケットは破棄されます。 Rider(またはその他のソフトウェア)が UDP メッセージを受信するためにマルチキャストグループに参加しようとする場合、IGMP の「参加」パケットを送信する必要があります。 PF が有効になっている場合、この送信 IGMP パケットは破棄され、マルチキャストグループに参加しないため、UDP マルチキャストメッセージは受信されません。 Rider の場合、これは Unity プレーヤーがダイアログに表示されないことを意味します。

以下の設定でこの問題は解決できます。 /etc/pf.conf を変更する際は、必ず事前にバックアップを作成してください。 また、このファイルはシステムアップデート時に再作成されるため、この設定は定期的に再適用する必要があります。

/etc/pf.conf ファイルを編集して、ファイルの末尾に以下の 2 行を追加してください( pf.conf ファイルを編集するには root 権限が必要です)。

anchor 'unity.udp/*' load anchor 'unity.udp' from '/etc/pf.anchors/unity.udp'

次に、以下の内容のファイル /etc/pf.anchors/unity.udp を追加します。

# # Unofficial configuration to enable Unity UDP multicast messages from players # # From `man pf.conf`: # # allow-opts # By default, IPv4 packets with IP options or IPv6 packets with rout- # ing extension headers are blocked. When allow-opts is specified # for a pass rule, packets that pass the filter based on that rule # (last matching) do so even if they contain IP options or routing # extension headers. For packets that match state, the rule that # initially created the state is used. The implicit pass rule that # is used when a packet does not match any rules does not allow IP # options. # # The last sentence means that when pf is enabled, the default rule will drop # any packet that includes IP options. Multicast group membership is handled # by sending IGMP report/leave packets, which use the RA IP option to inform # a router that it needs to look at this packet. # This rule will allow outgoing IGMP packets that have options and that have # a destination of 225.0.0.222 - the multicast group used by Unity players. # It is kept deliberately precise so that it does not affect other IGMP # packets. It can be loosened to allow IGMP packets for other groups. # pass out proto igmp from any to 225.0.0.222 allow-opts label "Unity player UDP multicast"

このルールにより、IGMP パケットの送信が許可され、あらゆるアプリケーションが 225.0.0.222 UDP マルチキャストグループに参加できるようになります。 これは、Unity プレーヤーが使用するグループです。

次に PF を再起動します。

pfctl -d pfctl -e -f /etc/pf.conf

サポート

このドキュメントで解決しない場合は、JetBrains サポート(support@jetbrains.com )までお問い合わせください。

2026 年 6 月 19 日