【Unity多人联机】Mirror视频学习笔记

以下视频均来自b站,无法停止奔跑的马https://space.bilibili.com/398331098

第一部分

https://www.bilibili.com/video/BV147411x7Q1?t=383

  • 02:16 NetworkManager,Telepothy做网络整体配置。
  • 04:52 NetworkIdentity,NetworkTransform,网络同步。

https://www.bilibili.com/video/BV1b7411x7h3

  • 04:38 继承NetworkBehaviour,以便捷实用Mirror功能。
  • 05:43 isLocalPlayer,判定是否本机用户。
  • 09:50 NetworkTransform.ClientAuthority,勾选,否则客户机主动产生的变化信息无法同步所有网络。

https://www.bilibili.com/video/BV1f7411x7yX

  • 05:35 重写OnStartServer(),相当于Start()。
  • 07:22 [ServerCallback],标识由服务器调用的方法。

https://www.bilibili.com/video/BV1f7411x7gF

  • 06:00 继承NetworkManager,重写OnServerAddPlayer(),以自定义角色创建过程(在有玩家加入服务器时)。
  • 07:26 NetworkServer.AddPlayerForConnect(),将新建立的角色加入指定连接(可能来自客户端)。
  • 10:21* NetworkManagerHUD,简易的界面。
  • 14:17* NetworkTransform.NetworkSyncInterval,调整同步频度,可降低不同步程度(可能有的物体不需要太频繁的同步)。
  • 14:29* NetworkManager.ServerTickRate,设置服务器更新速率,可降低不同步程度。

https://www.bilibili.com/video/BV1b7411s7Mr

  • 07:14 需要网络创建的同步对象要先注册到NetworkManager的注册对象列表中。
  • 09:19 通过Instantiate找到已注册对象,再用NetworkServer.Spawn()实例化此对象。
  • 11:37 重写NetworkManager.OnServerDisconnect(),在有玩家退出时做一些事情。
  • 12:17 NetworkServer.Destory(),销毁同步对象(由NetworkServer.Spawn创建的)。

第二部分

https://www.bilibili.com/video/BV127411j7zk

  • 01:33 [SyncVar(hook=someFunction)] 可以将对变量的修改,触发一个hook方法的调用。

https://www.bilibili.com/video/BV1B741177mT

  • 06:54 [Command] 修饰客户端调用,在服务器端执行的代码方法。

https://www.bilibili.com/video/BV157411A78s

  • 07:18 NetworkStartPosition组件,用于初始位置标识?

https://www.bilibili.com/video/BV1j7411A7w1

  • 03:30 OnStartLocalPlayer(),此方法在服务器端运行,其中设置修饰有[SyncVar]的变量,进而将数据同步到各个客户端。

https://www.bilibili.com/video/BV1j7411A7pd

  • 02:03 通过NetworkManager的PlayerSpawnMethod配置玩家出生方式,而挂载了NetworkStartPosition的组件即为玩家出生的位置。

https://www.bilibili.com/video/BV1L7411A7mh

  • 01:11 NetworkStartPosition的姿态会影响产生的玩家姿态。
  • 03:36 貌似[SyncVar]用于标识需要同步的变量。

第三部分

https://www.bilibili.com/video/BV127411V7pG

  • 3:41 [Command]修饰的方法要用Cmd开头,这类方法由客户端请求服务器执行。

https://www.bilibili.com/video/BV187411G7vQ

  • 03:07 [ClientRPC]修饰由服务器请求各个客户端上执行的方法,以Rpc开头。

https://www.bilibili.com/video/BV187411G7WY

  • 03:23 NetworkIdentity.ServerOnly,标识仅仅服务器端有效的对象。

https://www.bilibili.com/video/BV1x7411G71r

  • 06:35 [ServerCallback]修饰仅在服务器端执行的方法。

https://www.bilibili.com/video/BV167411g7i5

  • 04:37 [TargetRpc] 修饰指定目标机上执行的代码。
  • 06:43 NetworkBehaviour.connectionToClient保存着到客户端的连接信息。

https://www.bilibili.com/video/BV1u7411374T

  • 05:07 Mirror.Client.AddPlayer(),从客户端请求生成Player,重生用。

https://www.bilibili.com/video/BV137411378S

  • 07:02 在[ServerCallback]方法中可通过NetworkIdentity.connectionToClient判断对象由哪个客户端请求创建的。
  • 09:14 NetworkServer.Spawn()第二个参数指明生成的实例所隶属的对象。

总结

NetworkBehaviour

  • 需要网络操作的脚本最好继承自NetworkBehaviour。

需要同步的游戏对象

  • 通过NetworkIdentity和NetworkTransform构建需要同步的游戏对象(预制体)

同步对象的产生

  • 应该尽在服务器端代码执行同步对象产生的操作。
  • 先利用Instantiate产生同步对象预制体实例。
  • 再通过NetworkServer.Spawn(inst)将这个实例的产生同步到整个网络。

同步对象的销毁

  • 使用NetworkServer.Destroy(syncObj)销毁同步对象。

调用端与执行端

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