UNet实战系列(二)

    经过上一节的学习,同学们都知道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;
		}
	}
}


三 .

UNet实战系列(二)_第1张图片

四 . 运行起来看看效果

UNet实战系列(二)_第2张图片

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

你可能感兴趣的:(UNet实战系列(二))