# # 旧バージョンからの移行

Mini Tokyo 3D v3.0.0では、いくつかの互換性を損なう変更が行われました。拡張性と使いやすさを向上させるために、後方互換性を手放す必要がありましたが、メリットがある場合にのみ行うことを目指しました。

## # v3.0.0 への移行

### # 互換性を損なう変更

#### # `MiniTokyo3D` クラスではなく `mt3d` 名前空間をエクスポート

従来の `MiniTokyo3D` クラスの代わりに、`mt3d.Map` クラスにコンストラクタオプションを渡して Mini Tokyo 3D マップのオブジェクトを作成します。`mt3d` 名前空間には `Map` クラスの他にも複数のクラスや Mapbox GL JS、three.js ライブラリ全体が含まれており、マップのカスタマイズに利用することができます。

    const options = {
      container: 'mini-tokyo-3d',
      accessToken: '<Mapbox アクセストークン>'
    };
    const map = new mt3d.Map(options);

詳しくは、Mini Tokyo 3D の使用をご覧ください。

#### # プラグインフレームワークを再設計してすべてのプラグインを個別に提供

旧バージョンでは、いくつかのプラグインは Mini Tokyo 3D ライブラリに含まれる形で提供されていましたが、v3.0.0 ではプラグインフレームワークの設計を一から見直すとともに、すべてのプラグインを別モジュールとして提供するようになりました。このため、プラグインを追加する際には `Map` クラスのコンストラクタオプションとして、明示的に `PluginInterface` を実装したオブジェクトのリストを指定する必要があります。

    const options = {
      /* ... */
      plugins: [mt3dPrecipitation(), mt3dFireworks()]
    };
    const map = new mt3d.Map(options);

詳しくは、プラグインの追加をご覧ください。

#### # コンストラクタオプション `secrets.mapbox` の代わりに `accessToken` を使用

従来 `MiniTokyo3D` コンストラクタのオプション `secrets.mapbox` で指定していた Mapbox アクセストークンは、`accessToken` に指定して `Map` オブジェクトを作成します。

    const options = {
      /* ... */
      accessToken: '<Mapbox アクセストークン>'
    };
    const map = new mt3d.Map(options);

詳しくは、Mini Tokyo 3D の使用をご覧ください。