private void update_gameobject(all_data data) { set_check_delete_.Clear(); foreach (client_data d in data.data) { if (!dict_.ContainsKey(d.id)) { acchub_client_data o = d_create_object_?.Invoke(d.id); dict_[d.id] = o; } set_check_delete_.Add(d.id); dict_[d.id].update_acchub_data(d.hz, d.power); } List <int> list_delete = new List <int>(); foreach (KeyValuePair <int, acchub_client_data> kv in dict_) { if (!set_check_delete_.Contains(kv.Key)) { d_delete_object_?.Invoke(kv.Key, kv.Value); list_delete.Add(kv.Key); } } foreach (int id in list_delete) { dict_.Remove(id); } }
IEnumerator get_all_data(string url) { UnityWebRequest request = UnityWebRequest.Get(url); // リクエスト送信 yield return(request.SendWebRequest()); // 通信エラーチェック if (request.isNetworkError) { Debug.Log(request.error); } else { if (request.responseCode == 200) { // UTF8文字列として取得する string text = request.downloadHandler.text; Debug.Log(text); all_data d = JsonUtility.FromJson <all_data>(text); Debug.Log("num_client:" + d.data.Count); update_gameobject(d); } } }