Пример #1
0
    public IEnumerator DiscoverNetwork()
    {
        NetworkTransport.Init();
        //监听其它的服务器
        NetworkDiscoveryCustom discovery = GetComponent <NetworkDiscoveryCustom>();

        discovery.Initialize();
        discovery.StartAsClient();


        //等待2秒,等监听结果

        yield return(new WaitForSeconds(2));

        //没有找到局域网服务器就建立服务器

        if (discovery.running)

        {
            discovery.StopBroadcast();
            yield return(new WaitForSeconds(0.5f));

            discovery.StartAsServer();
            StartHost();
        }
    }
    //协程
    public IEnumerator DiscoveryNetwork()
    {
        //取得Discovery组件
        NetworkDiscoveryCustom discovery = GetComponent <NetworkDiscoveryCustom>();

        discovery.Initialize();    //组件初始化
        discovery.StartAsClient(); //扫描局域网服务器,有的话直接加入。到这里会直接调用Discovery里重写的方法,
        yield return(new WaitForSeconds(2));

        //没有找到服务器,就建立
        if (discovery.running)         //还在跑 没有加入
        {
            discovery.StopBroadcast(); //停掉广播包
            yield return(new WaitForSeconds(.5f));

            discovery.StartAsServer(); //作为服务器发射广播包
            StartHost();               //同时作为服务器和客户端启动
            //StartClient();//作为客户端启动
            //StartServer();//只作为服务器启动
        }
    }