実現したいこと
・Unityで地理情報システムを作成したい.
・基盤の地図は,Mapbox SDK for Unityを使用
・複数のCubeオブジェクトを,それぞれ指定した緯度経度に配置したい。
前提
・上記のような設計方針のもとでシステム開発を行っています。上の2つについては,実現できましたが,最後の指定した緯度経度にCubeオブジェクトを配置するというものについては,いまだ実現していません。
・オブジェクト1つですと,実現できましたが,最終的には,複数のオブジェクトをそれぞれ指定した緯度経度に配置したいです。
・ChatGPTやWebサイト等を参考に,スクリプトを作成し,緯度経度を設定しましたが,実行ボタンを押すとフリーズしてしまいます,
・自分なりに,調べたところ無限ループしていることが原因でフリーズすることがあるということがわかりました。しかし,自分では,どこが原因かわからないため,ご教授していただきたく質問させていただきました。
発生している問題・エラーメッセージ
実行ボタンを押すとUnityがフリーズする。
該当のソースコード
C#
1using System.Collections;2using System.Collections.Generic;3using UnityEngine;4using Mapbox.Utils;5using Mapbox.Unity.Map;6using Mapbox.Unity.Utilities;7 8public class PlaceObjectOnMap_Multi : MonoBehaviour 9{10 public AbstractMap map;11 public GameObject objectPrefab;12 public List<Vector2d> targetLatitudeLongitudeList; // 複数の緯度経度を格納するリスト13 14 void Start()15 {16 foreach (Vector2d targetLatitudeLongitude in targetLatitudeLongitudeList)17 {18 // 緯度経度をUnityのワールド座標に変換19 Vector3 targetPosition = Conversions.GeoToWorldPosition(targetLatitudeLongitude, map.CenterMercator, map.WorldRelativeScale).ToVector3xz();20 21 // オブジェクトを作成22 GameObject obj = Instantiate(objectPrefab, targetPosition, Quaternion.identity);23 obj.transform.SetParent(transform); // 親オブジェクトに子として設定24 }25 }26}27
補足情報(FW/ツールのバージョンなど)
PC:Windows10
Unity-version:2021.3.20f1
その他不明な点がありましたら追記させていただきます。
0 コメント