找回密码
 立即注册
查看: 299|回复: 0

[简易教程] Unity网络插件Mirror笔记(一)

[复制链接]
发表于 2024-7-15 18:50 | 显示全部楼层 |阅读模式
写在前面

这篇文章是个人向笔记,不完善的处所或许会后续修正或者勘误,或许不会,不适合作为教程使用,但如果能够对初学者有辅佐,我非常高兴。(如果没有辅佐,不要偷偷骂我)
笔者并非游戏工程师,只是做毕业设计临时需要使用unity。
正文

安装mirror库

在unity商店官网搜索mirror,然后【添加到我的unity】。
初始操作

创建空物体并添加networkManager,Transport,networkManagerHUD组件。



通过Add Component添加组件

在networkManager中挂载场景、Transport和Player Prefab。并为玩家对象添加networkIdentity和networkTransport组件,并勾选networkTransport的Client Authority属性。
为玩家组件创建脚本并挂载,在脚本中导入mirror包,并将MonoBehaviour替换为NetworkBehaviour。
这里也需要在networkManager中填写上Scene(包罗Offine和Online)以及Transport和Player Prefab



如图所示

还需要在场景中为角色添加一个或多个出生点:创建空物体,挂载NetworkSatrtPosition脚本,并将该物体拖动到合适的位置。
RPC调用

有三个关键字如果被用于修饰函数,则该函数不会在当地调用,而是在长途调用。[Command]、[ClientRpc]、[TargetRpc]。

  • Command在客户端调用,在处事端执行
  • ClientRpc在处事端调用,在所有与处事端连接的客户端执行
  • TargetRpc在处事端调用,在指定的与处事端连接的客户端执行,该方式至少有一个NetworkConnection的形参,用来确定是在哪一个客户端执行
出生点

创建空物体,并挂载NetworkStartPosition脚本。并在Player Prerfab插槽中选择玩家对象。
可以创建多个出生点,并在NetworkManager中选择随机(Random)或者轮询(Round Robin)的出生点选择方式。
客户端权限问题

通过islocalplayer来判断是否具有当前对象的权限:
  1. if (!isLocalPlayer) return; //不应操作非当地玩家
复制代码
对于在每个客户端独立生成的对象(这里以每位玩家的camera为例),需要将start方式改削为OnStartLocalPlayer(),这样可以避免多个客户端的摄像机被改削为同一台。
  1. public override void OnStartLocalPlayer()
  2.     {
  3.         //base.OnStartLocalPlayer();
  4.         cam = Camera.main.gameObject;
  5.         cam.transform.rotation = transform.rotation;
  6.         //Camera.main.transform.SetParent(transform);
  7.     }
复制代码
参考文献

UnityMirror学习笔记(1):安装与简单使用-CSDN博客
Unity系列【Mirror安装和试用】 - 简书 (jianshu.com)
【Unity多人联机】Mirror自学笔记 - 简书 (jianshu.com)
unity Mirror使用笔记_mirror unity_晴耕雨読3321的博客-CSDN博客
学习unity的网络处事(网络多人联机)————学习记录_养四只猫的猫叔的博客-CSDN博客
UNITY|Mirror(简单的多人游戏)教程
unity多人联机(Mirror插件)有史以来最全的基础教程(附加报错提示和官方手册改削)_unity mirror_我要取个出格出格出格出格出格出格长的名字的博客-CSDN博客
Mirror Networking - Mirror (gitbook.io)
Unity Mirror联网游戏开发(10) 长途行为之ClientRpc - 掘金 (juejin.cn)
UnityMirror学习笔记(6):权限与运动控制-CSDN博客

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-12-4 02:11 , Processed in 0.092616 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表