Example #1
0
    public void OnConnectionEstablished(ConnectionId newPeerConnectionId, IPEndPoint endpoint)
    {
        // Replicate existing objects to new player
        _ramnet.MessageSender.ReplicateEverything(_ramnet.MessagePool, newPeerConnectionId, _ramnet.ReplicatedObjectStore);

        /* First, create instance and spawn */
        var instance = _replicator.CreateReplicatedInstance(
            ObjectTypes.Player,
            ObjectRole.Authority,
            newPeerConnectionId);

        instance.GameObject.transform.position = Vector3.up * 100f;
        instance.GameObject.transform.rotation = Quaternion.identity;
        instance.GameObject.GetComponent <PlayerInitialState>().Color = UnityEngine.Random.ColorHSV(0f, 1f, 0.5f, 0.5f, 0.75f, 0.75f);
        _replicator.Activate(instance);

        Debug.Log("adding replicated instance");

        _playerCamera.Target = instance.GameObject.GetComponent <PlayerSimulation>();

        // Replicate new object to everyone
        var activeConnections = _ramnet.GroupRouter.GetActiveConnections(NetworkGroup.Default);

        _ramnet.MessageSender.Replicate(_ramnet.MessagePool, activeConnections, instance);
    }