/*   private IEnumerator Resend()
         * {
         *     //1オブジェクトずつデータを送信
         *     foreach(KeyValuePair<int,GameObject> val in intensities)
         *     {
         *         beInstance = false;
         *         sendNum = val.Key;
         *         sendInstant = val.Value;
         *         ParameterStorage param = sendInstant.GetComponentInChildren<ParameterStorage>();
         *         sendStorage = new List<object>();
         *         Vector3[] intensity = param.PushIntensity();
         *         //1回の送信量を減らすために64個ずつ送信
         *         //sendStorage.Add((float)sendNum);
         *         sendStorage.Add((float)sendNum);
         *         sendStorage.Add(0);
         *
         *         for (int i = 0; i < intensity.Length / 64; i++)
         *         {
         *             Vector3 sum = Vector3.zero;
         *             for (int j = 0; j < 64; j++)
         *             {
         *                 sum += intensity[i * 64 + j];
         *             }
         *             sum /= 64f;
         *             sendStorage.Add(sum.x);
         *             sendStorage.Add(sum.y);
         *             sendStorage.Add(sum.z);
         *         }
         *             object[] sender = sendStorage.ToArray();
         *             client.Send("InstanceSend", sender);
         *             Debug.Log("Send No." + sendNum);
         *             sendStorage.Clear();
         *             yield return new WaitForSeconds(0.2f);
         *
         *         while(beInstance == false)
         *         {
         *             yield return new WaitForSeconds(1f);
         *             Debug.Log("Writing Num:" + sendNum.ToString());
         *             beInstance = true;
         *         }
         *         client.Send("InsSend finish");
         *     }
         *     //送信が終わればデータ通信が終了したことを伝える
         *     client.Send("SendEnd");
         * }*/

        private IEnumerator Resend()
        {
            //1オブジェクトずつデータを送信
            foreach (KeyValuePair <int, GameObject> val in intensities)
            {
                beInstance  = false;
                sendNum     = val.Key;
                sendInstant = val.Value;
                ParameterStorage param = sendInstant.GetComponentInChildren <ParameterStorage>();
                sendStorage = new List <object>();
                Vector3[] intensity = param.PushIntensity();
                //1回の送信量を減らすために64個ずつ送信
                //sendStorage.Add((float)sendNum);

                int k = 0;
                for (int i = 0; i < 2048 / 64; i++)
                {
                    sendStorage.Add((float)sendNum);
                    sendStorage.Add(k);
                    for (int j = 0; j < 64; j++)
                    {
                        sendStorage.Add(intensity[i * 64 + j].x);
                        sendStorage.Add(intensity[i * 64 + j].y);
                        sendStorage.Add(intensity[i * 64 + j].z);
                    }
                    object[] sender = sendStorage.ToArray();
                    client.Send("InstanceSend", sender);
                    sendStorage.Clear();
                    k++;
                    yield return(new WaitForSeconds(0.2f));
                }

                Debug.Log("Send No." + sendNum);
                sendStorage.Clear();
                yield return(new WaitForSeconds(0.2f));

                while (beInstance == false)
                {
                    yield return(new WaitForSeconds(1f));

                    Debug.Log("Writing Num:" + sendNum.ToString());
                    beInstance = true;
                }
                client.Send("InsSend finish");
            }
            //送信が終わればデータ通信が終了したことを伝える
            client.Send("SendEnd");
        }
        protected void SetPropertyOrDefault(string value, [CallerMemberName] string key = null, bool silent = false)
        {
            var lowerKey = key.ToLower();

            var hasKey = ParameterStorage.ContainsKey(lowerKey);

            if (string.IsNullOrWhiteSpace(value))
            {
                if (!hasKey)
                {
                    return;
                }
                ParameterStorage.Remove(lowerKey);
                if (!silent)
                {
                    Refresh(key);
                }
                return;
            }

            if (hasKey)
            {
                if (ParameterStorage[lowerKey] == value)
                {
                    return;
                }
                ParameterStorage[lowerKey] = value;
                if (!silent)
                {
                    Refresh(key);
                }
                return;
            }

            ParameterStorage.Add(lowerKey, value);
            if (!silent)
            {
                Refresh(key);
            }
        }
Exemplo n.º 3
0
 protected override IEnumerable <string> BuildParameters() => ParameterStorage.Select(BuildParameter);
Exemplo n.º 4
0
 protected override IEnumerable <string> BuildParameters() => ParameterStorage.Select(BuildParameter)
 .Aggregate((IEnumerable <string>) new string[0], (current, pars) => current.Concat(pars));
 protected string GetPropertyOrDefault([CallerMemberName] string key = null)
 {
     key = key.ToLower();
     return(ParameterStorage.ContainsKey(key) ? ParameterStorage[key] : null);
 }