经过上一节的学习,同学们都知道Network Manager HUD组件和Network Manager组件要配合着使用。Network Manager HUD为Network Manager提供简单的登陆界面,可是我们不想用简易的界面,我们想自己做属于自己项目的高大上的界面该怎么办呢?这篇文章讲讲如何自己创建一个简单的Network Manager 界面。
一. 跟上一篇一样,我们首先要创建一个空对象命名为NetworkManager,为其添加Network Manager组件。
二 . 为Network Manager对象添加新脚本,命名为SimpleNetworkGUI,为其添加如下代码;
-
using UnityEngine;
-
using UnityEngine.Networking;
-
-
public class SimpleNetworkGUI : MonoBehaviour
-
{
-
//是否开启网络功能(是否连接网络)
-
bool isHaveNetworkRole = false;
-
-
void Start()
-
{
-
//如果isHaveNerworkRole为true则隐藏Start Host按钮,Start Server按钮,Start Client按钮,显示stop按钮
-
//如果isHaveNerworkRole为false则显示Start Host按钮,Start Server按钮,Start Client按钮,隐藏stop按钮
-
isHaveNetworkRole = false;
-
}
-
-
private void OnDisconnected()
-
{
-
isHaveNetworkRole = false;
-
-
}
-
-
void OnGUI()
-
{
-
if(isHaveNetworkRole)
-
{
-
if(GUI.Button(new Rect(Screen.width / 2 - 80, Screen.height / 2 - 12, 160, 24), "Stop"))
-
{
-
NetworkManager.singleton.StopServer();
-
NetworkManager.singleton.StopClient();
-
NetworkManager.singleton.StopHost ();
-
OnDisconnected();
-
}
-
return;
-
}
-
if(GUI.Button(new Rect(Screen.width / 2f - 80, Screen.height / 2 - 48, 160, 24), "Start Host"))
-
{
-
var client = NetworkManager.singleton.StartHost();
-
isHaveNetworkRole = true;
-
-
}
-
if(GUI.Button(new Rect(Screen.width / 2f - 80, Screen.height / 2 - 12, 160, 24), "Start Server"))
-
{
-
isHaveNetworkRole = NetworkManager.singleton.StartServer();
-
}
-
-
if(GUI.Button(new Rect(Screen.width / 2f - 80, Screen.height / 2 + 24, 160, 24), "Start Client"))
-
{
-
var client = NetworkManager.singleton.StartClient();
-
isHaveNetworkRole = true;
-
}
-
}
-
}
三 .

四 . 运行起来看看效果

结束了 哇咔咔,o(^▽^)o 这次的内容是不是超级简单。