Beispiel #1
0
    void UpdateAttemptToConnect()
    {
        if (LocalIsClient || LocalIsHost)
        {
            return;
        }

        if (DebugPlayAsClient)
        {
            LocalIsClient = true;
            EnableDisableConnectionObjects(2);
            return;
        }


        // We connected
        if (vnet.m_netSession.GetNumConnectedClients() > 0 &&
            vnet.m_netSession.GetSessionUID() == AttemptingToConnectGUID)
        {
            AttemptingToConnectGUID = VNetCommon.NET_SESSION_INVALID_UID;
            AttemptToConnectTimer   = 0;
            LocalIsClient           = true;
            NoConnection            = false;
            EnableDisableConnectionObjects(AttemptingToConnectRole);
            return;
        }

        if (AttemptToConnectTimer > 0)
        {
            if (vnet.m_availableSessions.m_openSessions.Count > 0)
            {
                foreach (ulong key in vnet.m_availableSessions.m_openSessions.Keys)
                {
                    AttemptingToConnectGUID = key;
                    break;
                }

                // Figure out a valid role you can take
                VNetOpenSession sess = vnet.m_availableSessions.m_openSessions[AttemptingToConnectGUID];
                AttemptingToConnectRole = 3 - sess.host.role;

                vnet.m_netSession.AttemptToJoinSession(AttemptingToConnectGUID, AttemptingToConnectRole);
            }
            AttemptToConnectTimer -= VNetTimer.Inst.GetFrameTimeFloat();
        }
        // Become the host of a new game since you failed to previously connect
        else if (AttemptingToConnectGUID == VNetCommon.NET_SESSION_INVALID_UID)
        {
            LocalIsHost  = true;
            NoConnection = false;

            int hostRole = LocalHostIsScientist ? 1 : 2;
            EnableDisableConnectionObjects(hostRole);

            vnet.StartHosting(hostRole);
        }
    }
Beispiel #2
0
 // Use this for initialization
 void Start()
 {
     vnet = new VNet();
     vnet.Init();
     vnet.StartHosting(0);
 }