【UNET自学日志】Part20 UI

说在前面,通过这部分我似乎看到了可以实现互联网的希望啦!

废话不多说,我们开始进入正题

首先在Menu场景下新建一些UI元素,两个button(ButtonStartHost和ButtonJoinGame),一个inputfield(InputFieldIPAddress),将InputFieldIPAddress下的子物体Text中的文本改为localhost;在Main场景下新建一个button(ButtonDisconnect)


新建脚本NetworkManager_Custom

using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
using UnityEngine.UI;

public class NetworkManager_Custom : NetworkManager {

    //创建房间
    public void StartupHost()
    {
        SetPort();
        NetworkManager.singleton.StartHost();
    }

    //加入游戏
    public void JoinGame()
    {
        SetIPAddress();
        SetPort();
        NetworkManager.singleton.StartClient();
    }

    //设置IP地址
    void SetIPAddress()
    {
        string ipAddress = GameObject.Find("InputFieldIPAddress").transform.FindChild("Text").GetComponent().text;
        NetworkManager.singleton.networkAddress = ipAddress;
    }

    //设置端口
    void SetPort()
    {
        NetworkManager.singleton.networkPort = 7777;
    }


    void OnLevelWasLoaded(int level)
    {
        //如果当前场景是Menu,调用SetupMenuSceneButton函数
        //如果当前场景是其他场景,调用SetupOtherSceneButton函数
        if (level == 0)
        {
            SetupMenuSceneButton();
        }
        else
        {
            SetupOtherSceneButton();
        }
    }

    //设置Menu场景下的button
    void SetupMenuSceneButton()
    {
        GameObject.Find("ButtonStartHost").GetComponent

将Menu场景中的NetworkManager中的NetworkManager和NetworkManagerHUD组件移除,将NetworkManager中的设置按照原样应用在NetworkManager_Custom中,接下来的Menu场景就如下图一样,点击StratHost按钮即可创建一个“房间”并开始游戏,点击JoinGame按钮即可加入“房间”开始游戏(若在输入框中输入其他的地址即可实现联网)


【UNET自学日志】Part20 UI_第1张图片

没有服务器的情况下,可以下载一个叫做hamachi的软件,生成一个可以远程连接的局域网(具体自行百度),copy其中的IP给好友就可以一起玩啦。

如此以来,实现互联网的功能就算实现了,如果要加入服务器的设置的话,看到这多多少少也会有一些想法了,过段时间看看博主能不能研究出些什么吧


UNET自学日志已经接近尾声啦!这在我想问一下各位观众老爷们,需不需要一个视频的教程(如果觉得自己英文水平不错的话可以看英文原版的视频,百度视频搜索UNET教程就有,此处应该感谢孙广东先生的视频搬运!)

你可能感兴趣的:(UNET学习日志)