示例#1
0
    private void SendPlayerAssetsToClients(PlayerAsset[] playerAssets, INetworkInterfaceConnection[] clients)
    {
        NetMessagePlayerAssets.Data[] datas = new NetMessagePlayerAssets.Data[playerAssets.Length];
        for (int i = 0; i < playerAssets.Length; i++)
        {
            datas[i] = new NetMessagePlayerAssets.Data(playerAssets[i]);
        }

        NetMessagePlayerAssets netMessage = new NetMessagePlayerAssets()
        {
            Assets = datas
        };

        // send message
        foreach (var client in clients)
        {
            _session.BeginLargeDataTransfer(netMessage, client, "Doodles");
        }
    }
示例#2
0
    protected override IEnumerator ExecuteRoutine()
    {
        // Serialize sim
        SimSerializationOperationWithCache serializeOp = new SimSerializationOperationWithCache(_simulationWorld);

        yield return(ExecuteSubOperationAndWaitForSuccess(serializeOp));

        // Transfer sim
        NetMessageSerializedSimulation netMessage = new NetMessageSerializedSimulation()
        {
            SerializedSimulation = serializeOp.SerializationData
        };

        var transferOp = _sessionInterface.BeginLargeDataTransfer(netMessage, _client, description: $"Simulation-{((SimulationWorld)_simulationWorld).GetLastTickIdFromEntity()}");

        yield return(ExecuteSubOperationAndWaitForSuccess(transferOp));

        // Terminate
        TerminateWithSuccess($"Simulation sent to client.");
    }