当前位置: 首页 > news >正文

Unity 多人游戏框架学习系列十

系列文章目录

unity知识点


文章目录

  • 系列文章目录
  • 前言
  • 一、Multiplayer 组件参考
    • 1-1、Network Proximity Checker
    • 1-2、NetworkStartPosition
    • 1-3、Network Transform
    • 1-4、Network Transform Child
    • 1-5、Network Transform Visualizer
  • 壁纸分享
  • 总结


前言

书接上回,承接下回,一系列的。
博客将会介绍多人游戏学习。希望这篇博客对Unity的开发者有所帮助。
大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。
欢迎点赞评论哦.下面就让我们进入正文吧 。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Multiplayer 组件参考

1-1、Network Proximity Checker

Network Proximity Checker 组件根据与玩家的接近程度来控制游戏对象对于网络客户端的可见性。
在这里插入图片描述

属性功能
Vis Range定义游戏对象的可见范围。
Vis Update Interval定义游戏对象应检查玩家是否进入其可见范围的频率(以秒为单位)。
Check Method定义要用于接近度检查的物理类型(2D 还是 3D)。
Force Hidden勾选此复选框可对所有玩家隐藏此对象。

使用 Network Proximity Checker 时,客户端上运行的游戏不具有关于不可见游戏对象的信息。因此具有两个主要优势:减少通过网络发送的数据量;让游戏更难以破解。

此组件依赖于物理系统来计算可见性,因此游戏对象上还必须有碰撞体组件。

具有 Network Proximity Checker 组件的游戏对象还必须具有 Network Identity 组件。在某个游戏对象上创建 Network Proximity Checker 组件时,Unity 还将在该游戏对象上创建 Network Identity 组件(如果还没有此组件)。

1-2、NetworkStartPosition

在创建玩家对象时,NetworkManager 将使用 NetworkStartPosition。NetworkStartPosition 的位置和旋转用于放置新创建的玩家对象。

1-3、Network Transform

Network Transform 组件在网络中同步游戏对象的移动和旋转。请注意,Network Transform 组件仅同步已生成的联网游戏对象。
在这里插入图片描述

属性功能
Network Send Rate (seconds)设置每秒的网络更新数。对于在创建后不需要更新的游戏对象,比如玩家生成的非交互式效果(例如,玩家身后的无法交互的尘埃云团),可以将此滑动条设置为 0。
Transform Sync Mode选择此游戏对象上应发生的同步类型。
Sync None不同步。
Sync Transform使用游戏对象的变换组件进行同步。如果物理系统不控制此游戏对象(即,通过脚本或动画移动游戏对象的情况下),请使用此选项。这是默认选项。
Sync Rigidbody 2D使用 Rigidbody2D 组件进行同步。如果 2D 物理系统控制此游戏对象,请使用此选项。
Sync Rigidbody 3D使用 Rigidbody 组件进行同步。如果 3D 物理系统控制此游戏对象,请使用此选项。
Sync Character Controller使用 Character Controller 组件进行同步。仅当使用 Character Controller 时才选择此选项。
Movement:
Movement Threshold设置在不发送移动同步更新的情况下游戏对象可以移动的距离。
Snap Threshold设置阈值,在此阈值处,如果移动更新使游戏对象远离其当前位置,则游戏对象贴靠到该位置而不是平滑移动。
Interpolate Movement Factor使用此属性可启用和控制同步运动的插值。该数字越大,游戏对象插入到目标位置的速度越快。如果将其设置为 0,则游戏对象将贴靠到新位置。
Rotation:
Rotation Axis定义应同步的一个或多个旋转轴。默认设置为 XYZ(全 3D)。
Interpolate Rotation Factor使用此属性可启用和控制同步旋转的插值。该数字越大,游戏对象插入到目标旋转的速度越快。如果将其设置为 0,则游戏对象将贴靠到新旋转。
Compress Rotation如果压缩旋转数据,则发送的数据量较低,旋转同步的精度较低。
None选择此选项将不对旋转同步应用任何压缩。这是默认选项。
Low选择此选项可对旋转同步应用低压缩量。此选项可减少为旋转数据发送的信息量。
High选择此选项可对旋转同步应用高压缩量。此选项为旋转数据发送最少的信息。
Sync Angular Velocity勾选此复选框可同步所连接的刚体组件的角速度。

此组件会考虑授权,因此本地玩家游戏对象(具有本地授权)将自身位置从客户端同步到服务器,然后同步到其他客户端。其他游戏对象(具有服务器授权)将自身位置从服务器同步到客户端。
具有 Network Transform 组件的游戏对象还必须具有 Network Identity 组件。在某个游戏对象上创建 Network Transform 组件时,Unity 还将在该游戏对象上创建 Network Identity 组件(如果还没有此组件)。

请注意,Network Transform Visualizer 组件是用于调试 Network Transform 组件的有用工具。

1-4、Network Transform Child

Network Transform Child 组件可将游戏对象的子游戏对象的位置和旋转与 Network Transform 组件同步。如果需要同步某个联网游戏对象的独立运动子对象,则应使用此组件。

要使用 Network Transform Child 组件,请将其与 Network Transform 附加到同一个父游戏对象,然后使用 Target 字段来定义要将组件设置应用到的子游戏对象。在一个父游戏对象上可以设置多个 Network Transform Child 组件。

在这里插入图片描述

属性功能
Network Send Rate (seconds)设置每秒的网络更新数。对于在创建后不需要更新的游戏对象,比如玩家生成的非交互式效果(例如,玩家身后的无法交互的尘埃云团),可以将此滑动条设置为 0。
Target要同步的子变换。(请注意,此组件位于父对象而不是子对象上,因此应使用此字段指定子对象)。
Movement Threshold设置在不发送移动同步更新的情况下游戏对象可以移动的距离。
Interpolate Movement Factor使用此属性可启用和控制同步运动的插值。该数字越大,游戏对象插入到目标位置的速度越快。如果将其设置为 0,则游戏对象将贴靠到新位置。
Interpolate Rotation Factor使用此属性可启用和控制同步旋转的插值。该数字越大,游戏对象插入到目标旋转的速度越快。如果将其设置为 0,则游戏对象将贴靠到新旋转。
Rotation Axis定义应同步的一个或多个旋转轴。默认设置为 XYZ(全 3D)。
Compress Rotation如果压缩旋转数据,则发送的数据量较低,旋转同步的精度较低。
None选择此选项将不对旋转同步应用任何压缩。这是默认选项。
Low选择此选项可对旋转同步应用低压缩量。此选项可减少为旋转数据发送的信息量。
High选择此选项可对旋转同步应用高压缩量。此选项为旋转数据发送最少的信息。

此组件不使用物理系统,可同步子游戏对象的位置和旋转,并向更新后的值进行插值。使用 Interpolate Movement Factor 和 Interpolate Rotation Factor 可自定义插值的速率。

具有 Network Transform Child 组件的游戏对象还必须具有 Network Identity 组件。在某个游戏对象上创建 Network Transform Child 组件时,Unity 还将在该游戏对象上创建 Network Identity 组件(如果还没有此组件)。

1-5、Network Transform Visualizer

Network Transform Visualizer 是一个实用程序组件,用于可视化使用 Network Transform 组件的游戏对象的插值。要使用此组件,请将其添加到已具有 Network Transform 组件的游戏对象,并在 Inspector 中分配一个预制件。该预制件可以是所选的任何项,它将用作游戏对象的传入变换数据的直观表示。

具有本地权限的游戏对象(例如本地玩家)不会进行插值处理,因此不会显示可视化游戏对象。可视化工具仅会显示网络中由其他计算机控制的其他网络化游戏对象(例如其他玩家)。
在这里插入图片描述

属性功能
Visualizer Prefab定义用于可视化网络变换目标位置的预制件。

正在运行游戏时,预制件被实例化为“可视化工具”游戏对象。当 Network Transform 游戏对象移动时,可视化工具游戏对象会显示在 Network Transform 的目标位置。

可以选择任何所需的可视化工具预制件。下面的示例中使用了半透明的洋红色立方体。

在此图中,Network Transform Visualizer 显示了游戏中远程玩家的传入变换数据,由洋红色立方体表示。

该组件在移动时通常看起来比 Network Transform 游戏对象略微靠前,但流畅度更低。这是因为该组件显示的是直接来自网络的原始位置数据,而不是使用插值来平滑地到达每个新的目标位置。

此动画显示传入的网络变换数据略微靠前,但不如联网游戏对象的插值位置平滑

具有 Network Transform Visualizer 组件的游戏对象必须还必须具有 Network Identity 组件。在某个游戏对象上创建 Network Transform Visualizer 组件时,Unity 还将在该游戏对象上创建 Network Transform 组件和 Network Identity 组件(如果还没有这些组件)。

注意:确保选择用作可视化游戏对象的预制件没有附加碰撞体,或任何其他可能影响游戏运行的组件!


壁纸分享

在这里插入图片描述

总结

书接上回,承接下回,一系列的。欲知后事如何,且听下回分解。
本次总结的就是这样的, 有需要会继续增加功能
如能帮助到你,就帮忙点个赞吧,三连更好哦,谢谢
你的点赞就是对博主的支持,有问题记得留言评论哦!
不定时更新Unity开发技巧,觉得有用记得一键三连哦。么么哒!

http://www.lryc.cn/news/598174.html

相关文章:

  • 贪心算法Day6学习心得
  • 苹果带火的3D高斯泼溅产品化玩法:一个成熟产品参考——以DJI Terra为例解析空间智能产品的商业化路径
  • ML3072 MQTT连接阿里云
  • 企业资产管理智能化:IT运维如何借力数字化管理提效避坑?
  • 计算机网络-- TCP 滑动窗口与拥塞控制
  • 亚马逊云科技:引领云计算新时代,开启无限可能
  • JavaSE:学习输入输出编写简单的程序
  • 【Unity开发】飞机大战项目实现总结
  • DigitalOcean 一键模型部署,新增支持百度开源大模型ERNIE 4.5 21B
  • Socket编程入门:从IP到端口全解析
  • element-plus 组件 ElMessage、ElLoading 弹框 和加载css 样式展示异常总结
  • SQL基础⑫ | 视图篇
  • 若用dnf下载的nginx和源文件下载的nginx冲突
  • 【学习路线】JavaScript全栈开发攻略:前端到后端的完整征程
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现卫星图像识别(C#代码,UI界面版)
  • 20-ospf技术
  • Java Map.Entry 核心解析
  • IPSec VPN -- 野蛮模式
  • OSPF开放式最短路径优先
  • C# 泛型(泛型方法)
  • Python中常用标准库(时间库、随机库、正则表达式)
  • pytest官方Tutorial所有示例详解(一)
  • 基于Node.js开发的开源博客平台ghost安装和使用
  • MySQL高可用部署
  • 云原生MySQL Operator开发实战(一):Operator基础与CRD设计
  • Spring MVC中常用注解_笔记
  • nuxt更改页面渲染的html,去除自定义属性、
  • 【Word Press进阶】自定义区块的行为与样式
  • go项目实战二
  • Linux应用开发基础知识——进程学习2(exec函数、system函数、popen函数)(三)