예제 #1
0
    private void UpdateValues(UnityAction onCompleted = null)
    {
        values.UpdateProperties(target);

        Debug.LogFormat("Updating properties: {0}", values.properties.ArrayToString());

        string json;

        if (presetProperties.NeedsWrite(out json))
        {
            if (onCompleted == null)
            {
                firebase.SetValueAsync(databasePath, json);
            }
            else
            {
                firebase.SetValueAsync(databasePath, json).ContinueWith(
                    task => {
                    if (task.IsCompleted)
                    {
                        onCompleted.Invoke();
                    }
                }
                    );
            }
        }
    }
예제 #2
0
    private IEnumerator UpdateValuesCoroutine()
    {
        while (updateInterval > .001f)
        {
            cameraValues.position = transform.position;
            cameraValues.euler    = transform.eulerAngles;
            firebase.SetValueAsync("admin/camera", JsonUtility.ToJson(cameraValues));

            yield return(new WaitForSeconds(updateInterval));
        }
    }
예제 #3
0
    private void Setup(bool isHost)
    {
        NetworkConnection unet     = NetworkConnection.Instance;
        FirebaseManager   firebase = FirebaseManager.Instance;

        firebase.ExecuteOnInitialisation(
            () => {
            string networkAddress;

            if (isHost)
            {
                networkAddress = Network.player.ipAddress;
                firebase.SetValueAsync("connection/ip", networkAddress);
                firebase.SetValueAsync("connection/run", UnityEngine.Random.Range(0, 100));
            }
            else
            {
                firebase.GetValueAsync("connection/ip",
                                       (value) => {
                    networkAddress = ( string )value;
                    unet.StartClient(networkAddress);
                }
                                       );
            }
        }
            );

        if (isHost)
        {
            unet.StartHost();

            unet.OnClientHasConnected +=
                (connectionId) => {
                Debug.Log("Client " + connectionId + " Connected!");
            }
            ;
        }
    }