Создание объектов с данными из БД изменяет значения - PullRequest
0 голосов
/ 08 июля 2019

Я работаю над игрой на основе местоположения, которая отображает местоположение каждого игрока на карте.

Таким образом, каждый клиент загружает lat, lon и его имя игрока в базу данных MySQL.после получения запроса и разбиения значений в массив маркеры для каждого игрока успешно загружаются на правильную позицию, но их имена игроков переключаются на следующий маркер.

public  void CreatePlayerAvatars()
{
    GameObject[] allObjects = GameObject.FindGameObjectsWithTag("PlayerMarker");
    foreach(GameObject obj in allObjects) {
        Destroy(obj);
    }
    float worldScale = FindObjectOfType<AbstractMap>().WorldRelativeScale;
    Vector2d mapCenter = FindObjectOfType<AbstractMap>().CenterMercator;
    if (PlayerGeoLocation != null && PlayerGeoLocation.text.Length > 0 )
    {
    // data from db
        string data = playerDataString.Replace(",",".");

        string[] datasets = data.Split('¡');

         try
            {          
                foreach(string item in datasets)
                    {

                        string[] Itemdata = item.Split('œ');

                        string id = Itemdata[0];
                        print(id);
                        string name = Itemdata[1];
                        print("name "+name);
                        string Lat = Itemdata[2];
                        print("lat: "+Lat);
                        string Lon = Itemdata[3];
                        print("Lon: " + Lon);

                        PlayerLat = Convert.ToDouble(Lat, System.Globalization.CultureInfo.InvariantCulture);
                        PlayerLon = Convert.ToDouble(Lon, System.Globalization.CultureInfo.InvariantCulture);


                        Vector3 InstancePosition = Conversions.GeoToWorldPosition(PlayerLat, PlayerLon, mapCenter, worldScale).ToVector3xz(); // This needs a reference point!

                        Instantiate(PlayerMarker, InstancePosition, Quaternion.identity );

                        PlayerLable = PlayerMarkerCanvas.GetComponent<Text>();
                        PlayerLable.text = name;}} catch()}}          

никаких сообщений об ошибках только переключение..

Если у кого-то есть подсказка, это будет высоко ценится.спасибо за время

1 Ответ

0 голосов
/ 08 июля 2019

Глупый я.Я добавил текст метки после создания экземпляра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...