---
title: MATCHMAKE_UNHANDLED エラーが発生しました
slug: world-sdk-guide-ja/matchmakeunhandled
docTags: 
createdAt: 2024-09-02T08:34:13.136Z
---

QRテスト中にMATCHMAKE\_UNHANDLEDエラーが発生した場合は、以下の方法を試して解決してください。

::Image[]{src="https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-VONRI8py0RPyx8RTN4sHa-20240904-102412.png" size="76" width="542" height="328" position="center" showCaption="false"}



## マルチプレイサーバースクリプト（index.ts）を確認してください。

- このエラーコードは、クライアントがマルチプレイサーバーに接続した後、サーバーからマルチプレイルームの状態データをスムーズに受信できない場合に発生する可能性があります。
- 以下のチュートリアルを参照し、サーバースクリプト（index.ts）のonCreate/onJoin部分のコードを確認してください。

:::hint{type="info"}
**📘&#x20;**&#x4EE5;下のガイドを参照してください。[ZEPETOマルチプレイチュートリアル](docId\:zp83R5fC6N0BI1I84p4k3)&#x20;
:::



## ZEPETO WORLD SDKのバージョンを最新のものに更新してください。

- 以下のガイドを参照して、ZEPETO WORLD SDKのバージョンが最新であるか確認し、最新バージョンに更新してください。

:::hint{type="info"}
**📘&#x20;**&#x4EE5;下のガイドを参照してください。[パッケージの更新](docId\:H49wBNb7bCwRrclJYBKiC)&#x20;
:::



## Zepeto World Multiplayコンポーネントを確認してください。

- Zepeto World Multiplayコンポーネントが異なるシーンに存在する場合、このエラーが発生する可能性があります。
- Zepeto World Multiplayコンポーネントを1つのシーンにのみ追加し、以下のサンプルコードに従ってシングルトンとして実装してください。

```typescript
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { GameObject } from 'UnityEngine';
 
export default class MultiplayComponent extends ZepetoScriptBehaviour {
 
    private static _instance: MultiplayComponent = null;
    public static get instance(): MultiplayComponent {
 
        // インスタンスがまだ作成されていない場合、以下のロジックを実行します。
        if (this._instance === null) {
 
            // シーン内でMultiplayComponentのインスタンスを検索します。
            this._instance = GameObject.FindObjectOfType<MultiplayComponent>();
 
            // シーン内にMultiplayComponentのインスタンスが見つからない場合、以下のロジックを実行します。
            if (this._instance === null) {
                this._instance = new GameObject(MultiplayComponent.name).AddComponent<MultiplayComponent>();
            }
        }
        return this._instance;
    }
 
    private Awake() {
        // すでに別のインスタンスが存在し、現在のインスタンスが異なる場合、以下のロジックを実行します。
        if (MultiplayComponent._instance !== null && MultiplayComponent._instance !== this) {
 
            // 現在のGameObject（現在のインスタンス）を破棄して、重複インスタンスの作成を防ぎます。
            GameObject.Destroy(this.gameObject);
 
        // 他のインスタンスが存在しない場合、または現在のインスタンスが同じ場合、以下のロジックを実行します。
        } else {
            MultiplayComponent._instance = this;
            GameObject.DontDestroyOnLoad(this.gameObject);
        }
    }
}
```

