本文へスキップ

マップレイヤーを使用してオブジェクトを配置する

Maplayers を使用して、 GameObjectLightshipMap 上に追加します。 これらのオブジェクトは、マップが移動しても、マップ上の配置された場所にとどまります。 LayerGameObjectPlacementを使って、新しいレイヤーにオブジェクトを追加する方法を説明します。

前提条件

  1. Lightship MapsパッケージがインストールされたUnityプロジェクトが必要です。また、 LightshipMaps プレハブがシーンに追加されている必要があります。 まだの方は Getting Started with Lightship Maps をご覧ください。

手順

  1. 新しいMapLayerプレハブを追加します。

    1. Project タブで、 Assets フォルダを選択します。

    2. メニューから、 Assets > Create > Maps SDK > Map Layer Prefabs > GameObject Placement Layer の順に選択します。

    3. レイヤーの名前を選択し、Enterキーを押します。

    4. 新しいMapLayerプレハブをシーンにドラッグ&ドロップします。 以下の画像では、LightshipMapsゲームオブジェクトの子として追加されていますが、シーン内の任意の場所にあれば動作します。

      新しいマップレイヤー
  2. プレハブにGameObjectを追加します。

    1. マップレイヤーの Inspector ビューを開きます。

    2. レイヤーゲームオブジェクトの配置(スクリプト)プレハブ にGameObjectを追加します。

      レイヤーゲームオブジェクトの配置
  3. MapLayerプレハブをLightshipMapsプレハブに追加します。

    1. LightshipMapsプレハブの Inspector ビューに移動します。

    2. MapLayers の下にある + をクリックして新しいレイヤーを追加します。

    3. 新しいマップレイヤーを選択します。

      LightshipMap - MayLayers
  4. スクリプトでGameObjectをインスタンス化します。

    1. GameObjectをインスタンス化するスクリプトで、 LayerGameObjectPlacement というシリアライズ可能なフィールドを作成します。

      [SerializeField] private LayerGameObjectPlacement _cubeGOP;
    2. オブジェクトをインスタンス化するメソッドで、 LayerGameObjectPlacement.PlaceInstance() 、オブジェクトをマップに配置する。 マップ上の正しい位置にインスタンス化するには、オブジェクトの位置(LatLng)を渡す必要があります。

      private void PlaceObject(LatLng pos) => _cubeGOP.PlaceInstance(pos);
      LightshipMap - MayLayers