예제 #1
0
    IEnumerator Exchange()
    {
        float         startTime = Time.time;
        ObjectInfoSet toSend    = new ObjectInfoSet();

        toSend.data = new List <ObjectInfo>();
        for (int i = 0; i < parents.Length; i++)
        {
            toSend.data.Add(new ObjectInfo(parents[i]));
        }

        WWWForm form = new WWWForm();

        form.AddField("data", JsonUtility.ToJson(Encrypt(JsonUtility.ToJson(toSend))));

        using (UnityWebRequest webRequest = UnityWebRequest.Post(sendParentsURL, form)) {
            yield return(webRequest.SendWebRequest());

            if (webRequest.isNetworkError)
            {
                Debug.Log("Connection failed");
            }
            else
            {
                ChunkedEncryptedData d        = JsonUtility.FromJson <ChunkedEncryptedData>(webRequest.downloadHandler.text);
                ObjectInfoSet        received = JsonUtility.FromJson <ObjectInfoSet>(Decrypt(d));
                foreach (ObjectInfo o in received.data)
                {
                    foreach (GameObject g in children)
                    {
                        if (g.name == o.name)
                        {
                            Debug.Log("Set " + g.name);
                            g.transform.position = o.position;
                            g.transform.rotation = UnityEngine.Quaternion.Euler(o.rotation);
                        }
                    }
                }
            }
        }
        float timePassed = (Time.time - startTime);

        avgLatency   = ((avgLatency * clicks) + timePassed) / (clicks + 1);
        clicks      += 1;
        latency.text = "Avg. Latency: " + avgLatency;
    }
예제 #2
0
    // Start is called before the first frame update
    void Start()
    {
        /*switch (encryptionMode) {
         *  case (EncryptionMode.None):
         *      encryptionMethod = "None";
         *      break;
         *  case (EncryptionMode.AES):
         *      encryptionMethod = "AES";
         *      break;
         *  case (EncryptionMode.DES):
         *      encryptionMethod = "DES";
         *      break;
         *  case (EncryptionMode.DES3):
         *      encryptionMethod = "DES3";
         *      break;
         *  case (EncryptionMode.RSA):
         *      encryptionMethod = "RSA";
         *      break;
         * }
         */
        clientRSA = new RSACryptoServiceProvider(2048);
        var pubKey = clientRSA.ExportParameters(false);

        clientPublicKeys   = new RSAKeySet();
        clientPublicKeys.n = pubKey.Modulus;
        clientPublicKeys.e = pubKey.Exponent;

        ObjectInfoSet toSend = new ObjectInfoSet();

        toSend.data = new List <ObjectInfo>();
        for (int i = 0; i < parents.Length; i++)
        {
            toSend.data.Add(new ObjectInfo(parents[i]));
        }

        opening = true;
    }