官方多人游戏教程实验心得

**前言**

这两天在Unity官网学习了一下联网游戏的基础教程,接下来我梳理一下实验心得,以及拎一下注意点。如果有什么不对的地方,欢迎留言提醒。


辅助资料   ----->    官方网络游戏教程 、、、、官方网络手册指南

**实验笔记与心得**

1。首先我们要了解的一点是:一个联网的游戏分为服务器端和客户端。服务器端主要负责游戏数据的互联以及数据的处理,而客户端主要负责接收玩家的输入操作。因此,在unity的脚本编写中要十分注意什么时候在服务器端调用函数,什么时候要在客户端上调用函数。

2。所有的玩家对象都是有客户端同步到服务器端,再由服务器端同步到其他客户端的,只有非玩家的物体在只在服务器上生成并同步到其他客户端上的。事实上我们可以这么来举例:玩家的真身在自己所属的客户端上,他将自己的分身放在服务器端,接收数据的变更;而服务器端就像是一个控制中心把所有接收到的分身映射到其他客户端;而其他客户端玩家打的不过是另一个玩家的映像。但是玩家间的数据是怎么改变的呢?为什么“我”打了“他”,“他”真的掉血?其实,这些数据的交互都是在服务器端处理的,由服务器端统一更新到各个客户端,这样就实现了数据的集中处理。而非玩家物体的真身在服务器端。

示意图

3。在建立游戏的一开始,我们要创建一个空物体并命名绑上NetworkManager组件(这个组件是网络游戏的核心,它能让我们配置和控制很多网络相关的事情)

4。为了方便我们调试还要绑上一个NetworkManagerHUD组件(用户UI,这个后期可以自己改掉)。

5。物体要在网络中显示,要先注册network identity身份标识。注册了身份标识的物体要在network Manager中Spawn Info中登记。值得注意的是,如果选择了SERVER ONLY那么物体之后在服务器端生成,并不会传送到客户端。而选择Local Player Authority 则意味着这个物体将拥有本地权限,是玩家可以去操控的。

6。如果有移动必须添加 network Transform组件 。其中的Network Send Rate 表示移动更新频率,如果物体频繁移动的话可以适当调高些,相应调低。这样有助于游戏的良好体验以及性能的优化。

7.状态同步:游戏的数据添加[SyncVar]属性后会向服务器上更新数据信息。[SyncVar(hook = “ yourFunction”)]属性指的是在[SyncVar]数据发上变化时其勾连的函数将在客户端被调用执行,这样达到服务器数据向客户端传递的效果。值得注意的是,勾连函数传入的参数类型应该和[SyncVar]属性数据的类型相同。

8。 远程控制:具有[Command]属性的函数只能在客户端上调用并且在服务器端执行,并不具备向其他客户端更新消息的功能。通常用于向客户端物体施加命令。

9。客户端上任何产生的物体都要NetworkServer.Spawn(object)  ,  通知到服务器端。

10。远程控制:[ClientRpc]属性的函数只能在服务器端调用客户端上执行,这类似[SyncVar]勾连函数的作用,能够向所有客户端发送执行函数指令,达到所有客户端同步的效果。值得注意的是,在客户端上调用的函数中不能调用[SyncVar]属性的数据因为该数据是只在服务器端更新的。

11。控制本地玩家物体是要加if(!isLocalPlayer) return;  判断。否则所有绑定控制脚本的物体都会被移动。

12. OnStartLocalPlayer()  用于区别处理本地玩家的函数。

13. 删除和创建物体都应该在服务器端执行,不然会出现客户端上已经删除而服务器上还存在的现象。

14. NetworkStartPosition组件 可以给物体创建出生点。改变NetworkManager的Spawn Info 的Spawner Met之后NetworkManager会自动查找拥有NetworkStartPosition组件的物体,视为出生点。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容