Unity学习之Net

前言:刚刚学习了一个关于多人网络的一个小demo,主要是学习UNet(Unity Network),趁热打铁


参考文章:

Unity  官方学习手册:https://unity3d.com/cn/learn/tutorials/s/multiplayer-networking?_ga=2.167842657.1937272836.1515592728-1031503227.1515592728

使用Multiplayer Networking做一个简单的多人游戏例子-1/3(Unity3D开发之二十五):http://blog.csdn.net/cocos2der/article/details/51006463;

使用Multiplayer Networking做一个简单的多人游戏例子-2/3(Unity3D开发之二十六):http://blog.csdn.net/cocos2der/article/details/51007512;

使用Multiplayer Networking做一个简单的多人游戏例子-3/3(Unity3D开发之二十七):http://blog.csdn.net/cocos2der/article/details/51008073


1.认识Network组件

(1)NetworkManager组件:管理游戏的网络状态

Unity学习之Net_第1张图片

(2)Network Manager HUD组件:跟Network Manager一起工作,提供一个简单的用户接口(UI)控制游戏运行时游戏的网络状态

<1>运行时,Network Manager HUD在游戏视图中的画面,LAN Host(连接服务器)、LAN Client(连接客户端)

Unity学习之Net_第2张图片

<2>点击LAN Host之后,NetworkManagerHUD发生改变控制去显示活动的服务器,点击Stop,游戏将会离线,当有人连接到服务器之后,再有人在另一个程序上点击LAN Client,则会作为客户端去连接服务器

(3)Network Identity:用于在网络中标识对象,使网络系统认识它

(4)把预设体注册到Network Manager中,通过预设体卵生新的游戏对象注入在场景中

Unity学习之Net_第3张图片

(5)Network Transform组件:同步在客户端和服务器中的Transform

Unity学习之Net_第4张图片

(6)Network Start Position组件:用来设定开始的位置

2.创建脚本

<1>PlayerController

Unity学习之Net_第5张图片

1)using UnityEngine.Networking;

类:NetworkBehaviour、NetworkServer、NetworkStartPosition

1.1)脚本取消继承MonoBehaviour类,继承NetworkBehaviour类

1.2)NetworkBehaviour类

1.2.1)是否是本地玩家:IsLocalPlayer

1.2.5)系统的回调方法,在开始本地游戏的时候调用:OnStartLocalPlayer()

1.2.7)[Command]

使用[]括起来的是特性

在客户端调用Cmd开头字母名字的方法,在服务器执行该方法,叫做远程调用,

使用该特性修饰的方法,方法名字必须以Cmd开头

1.2.8)是否在服务器中:IsServer

1.2.9)查找挂载脚本对象身上的类型:FindObjectOfType<类型>();

1.2.10)系统的回掉调方法,当对象在服务器中生成或是服务器启动时,对场景中的对象调用此方法:OnStartServer()

1.2.11) [ClientRpc]

在服务器调用Rpc开头字母名字的方法,在客户端执行该方法,叫做远程调用。

使用该特性修饰的方法,方面名字必须以Rpc开头

1.3)NetworkServer类

1.3.1)卵生对象在所有已经准备好的客户端中:类名.Spawn(对象);

在服务器调用此卵生子弹的方法,在客户端执行(卵生子弹)

<2>Health

Unity学习之Net_第6张图片

<3>Bullet

Unity学习之Net_第7张图片

<4>EnemySpawner

Unity学习之Net_第8张图片

<5>Billboard

Unity学习之Net_第9张图片

3.场景中的对象:网络管理员、敌人卵生位置

Unity学习之Net_第10张图片

<1>Network Manager(网络管理员)

Unity学习之Net_第11张图片

<2>Enemy Spawner

Unity学习之Net_第12张图片

<3>Spawn Position1

Unity学习之Net_第13张图片

4.工程中的资源:材质、预设体、场景、脚本

Unity学习之Net_第14张图片

<1>材质:黑、白

<2>预设体:

1)Player:PlayerController脚本、Health脚本、Network Identity组件、Network Transform组件

Unity学习之Net_第15张图片

2)Enemy:Network Identity组件、Network Transform组件、Health脚本

Unity学习之Net_第16张图片

3)Bullet:Rigidbody组件、Network Identity组件、Network Transform组件、Bullet脚本

Unity学习之Net_第17张图片

<3>场景:主场景

<4>脚本:前面有代码贴图,以及内容整合


最后:由于是前几天的状态不佳,所以花费今天一天的时间整理,可能也记得不是很清晰了,但还是要去整理

你可能感兴趣的:(Unity学习之Net)