用数据库中的数据实例化对象更改值

时间:2019-07-08 13:40:21

标签: c# php mysql unity3d

我正在研究一款基于位置的游戏,该游戏在地图上显示每个玩家的位置。

因此,每个客户端都将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()}}          

没有错误消息,只是switcheroo。

如果有人有暗示,将不胜感激。 谢谢你的时间

1 个答案:

答案 0 :(得分:0)

愚蠢的我。我在实例化后添加了标签文本。