29.UE5蓝图的网络通讯,多人自定义事件,变量同步
3-9 蓝图的网络通讯、多人自定义事件、变量同步_哔哩哔哩_bilibili
目录
1.网络通讯
1.1玩家Pawn之间的同步
1.2事件同步
1.3UI同步
1.4组播
1.5变量同步
1.网络通讯
1.1玩家Pawn之间的同步
创建一个第三人称项目
将网络模式更改为监听服务器,即将房主作为服务器使用。并且将玩家数量改为3。
3个玩家可以测试出,客户端和服务端的关系,客户端和客户端的关系所以至少需要一个服务端和两个客户端才能测试出所有情况。
打开第三人称模板自带的Charactor。
将复制运动和复制关掉,发现服务端和两个客户端之间没有任何同步,相当于三个独立的世界。
当把复制运动打开之后,客户端之间可以同步,客户端和服务端不能同步
当把复制和复制运动都打开之后,可以实现客户端之间,客户端与服务端之间的同步
1.2事件同步
在Charactor中添加一个发射火球的方法
会发现服务端发射火球可以同步到客户端上,但是客户端发射火球无法同步。
这个时候需要让发射火球的事件在服务器上运行。
首先定义一个发射火球的事件,并且将这个事件设置为在服务器上运行。
1.3UI同步
在游戏模式中添加UI时,只会将UI添加到主机上、
在控制器中添加UI时,会将UI添加到每一个玩家屏幕上, 但是直接添加UI会报下面的错误。
需要在创建UI时,判断是否是本地玩家。
1.4组播
组播的方式是,当这个方法被服务端调用的时候,所有服务端和客户端都会执行这个方法。
案例:按2,让所有客户端和服务端都创建UI
运行游戏点击进入服务端的游戏窗口,按2可实现在所有主机上创建UI的功能
组播只能由服务端发起,客户端发起则依旧是本地的方法。
1.5变量同步
当一个服务端更改这个变量时,所有的客户端和服务端中的这个变量也会同步更新。相反当客户端更改这个变量的时候,只是在本地修改。
案例:使用这个机制实现一个,共享的,团队剩余生命数。按1,减少团队剩余生命数。(类似于GTA5中的差事中的那个团队剩余生命)
首先,创建剩余生命的UI控件
创建一个Actor蓝图,命名为记录员,只存一个共享变量,命名为当前团队剩余生命,这个记录员只有一个方法,扣除生命(不需要复制,因为变量是同步的,当其中一个客户端更改这个变量后,整个游戏中所有的主机都会同步这个变量)。
同时将记录员的复制和复制运动打开
剩余生命UI中,添加一个公开可编辑的变量,命名为我的记录员,并将记录员的当前团队剩余生命绑定到剩余生命条数。
将我们的记录员拖到场景中,为了方便看到,我给记录员添加了一个静态网格, 实际开发中则并不需要。
打开角色蓝图,定义创建控件的方法,首先根据类获取场景中的记录员,然后将记录员绑定到我们的UI组件中。虽然创建的剩余生命UI控件是每一个主机一个,但是由于记录员只有一个,所以所有的剩余生命UI中的剩余生命数会随着记录员中的剩余生命同步更新
在角色的开始事件后面,调用上面绑定并显示UI的方法
按3的时候,调用角色死亡事件,角色死亡会找当场景中的记录员,并更改记录员记录的剩余生命,还记的变量同步的原理吗,由于变量同步是从服务端同步到客户端,所有只有在服务端更改这个记录员的剩余生命时,所有主机的变量才能同步,所以角色死亡事件需要设置在服务器上运行
至此,三者可实现同步
总结:
Pawn同步:打开复制和复制运动
本地UI:在本地的Pawn中调用和实现
全局UI:在服务器上运行,且通过Pawn的组播方法实现
全局UI的变量同步:服务器添加全局唯一的记录员,记录员拥有保存所有需要同步的变量,记录员本身要复制且复制运动,改同步变量的方法需要运行在服务器上。
相关文章:
29.UE5蓝图的网络通讯,多人自定义事件,变量同步
3-9 蓝图的网络通讯、多人自定义事件、变量同步_哔哩哔哩_bilibili 目录 1.网络通讯 1.1玩家Pawn之间的同步 1.2事件同步 1.3UI同步 1.4组播 1.5变量同步 1.网络通讯 1.1玩家Pawn之间的同步 创建一个第三人称项目 将网络模式更改为监听服务器,即将房主作为…...
Scala—列表(可变ListBuffer、不可变List)用法详解
Scala集合概述-链接 大家可以点击上方链接,先对Scala的集合有一个整体的概念🤣🤣🤣 在 Scala 中,列表(List)分为不可变列表(List)和可变列表(ListBuffer&…...
【论文复现】偏标记学习+图像分类
📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ 偏标记学习图像分类 概述算法原理核心逻辑效果演示使用方式参考文献 概述 本文复现论文 Progressive Identification of True Labels for Pa…...
C嘎嘎探索篇:栈与队列的交响:C++中的结构艺术
C嘎嘎探索篇:栈与队列的交响:C中的结构艺术 前言: 小编在之前刚完成了C中栈和队列(stack和queue)的讲解,忘记的小伙伴可以去我上一篇文章看一眼的,今天小编将会带领大家吹奏栈和队列的交响&am…...
AIGC-----AIGC在虚拟现实中的应用前景
AIGC在虚拟现实中的应用前景 引言 随着人工智能生成内容(AIGC)的快速发展,虚拟现实(VR)技术的应用也迎来了新的契机。AIGC与VR的结合为创造沉浸式体验带来了全新的可能性,这种组合不仅极大地降低了VR内容的…...
Django 路由层
1. 路由基础概念 URLconf (URL 配置):Django 的路由系统是基于 urls.py 文件定义的。路径匹配:通过模式匹配 URL,并将请求传递给对应的视图处理函数。命名路由:每个路由可以定义一个名称,用于反向解析。 2. 基本路由配…...
《硬件架构的艺术》笔记(八):消抖技术
简介 在电子设备中两个金属触点随着触点的断开闭合便产生了多个信号,这就是抖动。 消抖是用来确保每一次断开或闭合触点时只有一个信号起作用的硬件设备或软件。(就是每次断开闭合只对应一个操作)。 抖动在某些模拟和逻辑电路中可能产生问…...
Spring 与 Spring MVC 与 Spring Boot三者之间的区别与联系
一.什么是Spring?它解决了什么问题? 1.1什么是Spring? Spring,一般指代的是Spring Framework 它是一个开源的应用程序框架,提供了一个简易的开发方式,通过这种开发方式,将避免那些可能致使代码…...
【算法】连通块问题(C/C++)
目录 连通块问题 解决思路 步骤: 初始化: DFS函数: 复杂度分析 代码实现(C) 题目链接:2060. 奶牛选美 - AcWing题库 解题思路: AC代码: 题目链接:687. 扫雷 -…...
如何选择黑白相机和彩色相机
我们在选择成像解决方案时黑白相机很容易被忽略,因为许多新相机提供鲜艳的颜色,鲜明的对比度和改进的弱光性能。然而,有许多应用,选择黑白相机将是更好的选择,因为他们产生更清晰的图像,更好的分辨率&#…...
Rust 力扣 - 740. 删除并获得点数
文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 首先对于这题我们如果将所有点数装入一个切片f中,该切片f中的i号下标表示所有点数为i的点数之和 那么这题就转换成了打家劫舍这道题,也就是求选择了切片中某个下标的元素后,该…...
OpenCV从入门到精通实战(七)——探索图像处理:自定义滤波与OpenCV卷积核
本文主要介绍如何使用Python和OpenCV库通过卷积操作来应用不同的图像滤波效果。主要分为几个步骤:图像的读取与处理、自定义卷积函数的实现、不同卷积核的应用,以及结果的展示。 卷积 在图像处理中,卷积是一种重要的操作,它通过…...
Docker核心概念总结
本文只是对 Docker 的概念做了较为详细的介绍,并不涉及一些像 Docker 环境的安装以及 Docker 的一些常见操作和命令。 容器介绍 Docker 是世界领先的软件容器平台,所以想要搞懂 Docker 的概念我们必须先从容器开始说起。 什么是容器? 先来看看容器较为…...
环形缓冲区
什么是环形缓冲区 环形缓冲区,也称为循环缓冲区或环形队列,是一种特殊的FIFO(先进先出)数据结构。它使用一块固定大小的内存空间来缓存数据,并通过两个指针(读指针和写指针)来管理数据的读写。当任意一个指针到达缓冲区末尾时,会自动回绕到缓冲区开头,形成一个"环"。…...
jQuery-Word-Export 使用记录及完整修正文件下载 jquery.wordexport.js
参考资料: jQuery-Word-Export导出word_jquery.wordexport.js下载-CSDN博客 近期又需要自己做个 Html2Doc 的解决方案,因为客户又不想要 Html2pdf 的下载了,当初还给我费尽心思解决Html转pdf时中文输出的问题(html转pdf文件下载之…...
云服务器部署WebSocket项目
WebSocket是一种在单个TCP连接上进行全双工通信的协议,其设计的目的是在Web浏览器和Web服务器之间进行实时通信(实时Web) WebSocket协议的优点包括: 1. 更高效的网络利用率:与HTTP相比,WebSocket的握手只…...
C#+数据库 实现动态权限设置
将权限信息存储在数据库中,支持动态调整。根据用户所属的角色、特定的功能模块,动态加载权限” 1. 数据库设计 根据这种需求,可以通过以下表设计: 用户表 (Users):存储用户信息。角色表 (Roles):存储角色…...
(原创)Android Studio新老界面UI切换及老版本下载地址
前言 这两天下载了一个新版的Android Studio,发现整个界面都发生了很大改动: 新的界面的一些设置可参考一些博客: Android Studio新版UI常用设置 但是对于一些急着开发的小伙伴来说,没有时间去适应,那么怎么办呢&am…...
Ubuntu24虚拟机-gnome-boxes
推荐使用gnome-boxes, virtualbox构建失败,multipass需要开启防火墙 sudo apt install gnome-boxes创建完毕~...
k8s rainbond centos7/win10 -20241124
参考 https://www.rainbond.com/ 国内一站式云原生平台 对centos7环境支持不太行 [lighthouseVM-16-5-centos ~]$ curl -o install.sh https://get.rainbond.com && bash ./install.sh 2024-11-24 09:56:57 ERROR: Ops! Docker daemon is not running. Start docke…...
SpringBoot+Vue滑雪社区网站设计与实现
【1】系统介绍 研究背景 随着互联网技术的快速发展和冰雪运动的普及,滑雪作为一种受欢迎的冬季运动项目,吸引了越来越多的爱好者。与此同时,社交媒体和在线社区平台的兴起为滑雪爱好者提供了一个交流经验、分享心得、获取信息的重要渠道。滑…...
MySql.2
sql查询语句执行过程 SQL 查询语句的执行过程是一个复杂的过程,涉及多个步骤。以下是典型的关系数据库管理系统 (RDBMS) 中 SQL 查询语句的执行过程概述: 1. 客户端发送查询 用户通过 SQL 客户端或应用程序发送 SQL 查询语句给数据库服务器。 2. …...
算法之区间和题目讲解
题干 难度:简单 题目分析 题目要求算出每个指定区间内元素的总和。 然而,区间在输入的最下面,所以按照暴力破解的思路,我们首先要遍历数组,把它的值都存进去。 然后,遍历下面的区间,从索引a…...
价格分类(神经网络)
# 1.导入依赖包 import timeimport torch import torch.nn as nn import torch.optim as optimfrom torch.utils.data import TensorDataset, DataLoader from sklearn.model_selection import train_test_splitimport numpy as np import pandas as pd import matplotlib.pypl…...
对智能电视直播App的恶意监控
首先我们要指出中国广电总局推出的一个政策性文件是恶意监控的始作俑者,这个广电总局的政策性文件禁止智能电视和电视盒子安装直播软件。应该说这个政策性文件是为了保护特殊利益集团,阻挠技术进步和发展的。 有那么一些电视机和电视盒子的厂商和电信运…...
【JavaEE初阶】多线程初阶下部
文章目录 前言一、volatile关键字volatile 能保证内存可见性 二、wait 和 notify2.1 wait()方法2.2 notify()方法2.3 notifyAll()方法2.4 wait 和 sleep 的对比(面试题) 三、多线程案例单例模式 四、总结-保证线程安全的思路五、对比线程和进程总结 前言…...
macOS上进行Ant Design Pro实战教程(一)
由于一个AI项目的前端使用了umi,本教程根据阿里官网上的 《Ant Design 实战教程(beta 版)》来实操一下,我使用macOS操作系统,VS Code 开发环境。 一、开发环境 1、安装nodejs, npm, yarn 官网上建议使用cnpm…...
智能合约运行原理
点个关注吧!! 用一句话来总结,智能合约就像是一个自动售货机:你投入硬币(触发条件),选择商品(执行合约),然后机器就会自动给你商品(执行结果&…...
安卓动态添加View
在安卓应用中,有很多时候需要动态添加View。比如从后台获取商品列表,根据商品数量在页面渲染对应数量的条目,这时候就需要动态添加View。 1.动态添加View的方法 动态添加View有两种方法: 由代码生成子View:这种方式…...
前端预览pdf文件流
需求 后端接口返回pdf文件流,实现新窗口预览pdf。 解决方案 把后端返回的pdf文件流转为blob路径,利用浏览器直接预览。 具体实现步骤 1、引入axios import axios from axios;2、创建预览方法(具体使用时将axios的请求路径替换为你的后端…...
苏州建站公司兴田德润简介呢/电脑培训中心
0x00 题外 每天备战考研的日子,真是苦逼啊。不过离考试所剩实践也不多了 0x01 1、设置window IP地址为192.168.3.XX,掩码24位。 2、设置Linux IP地址为192.168.3.YY,掩码24位。window与Linux互相ping通。 3、在linux中开通telnet和vsftp服务…...
徐州建设工程审图中心网站/网站优化排名查询
计算机编程简史 用一张图说出计算机编程发展的前世今生!!! 这张不太清晰,如全图请下载!计算机编程年史...
中山网站建设文化策划书/上海城市分站seo
http://www.w3cschool.cc/try/demo_source/bootstrap3-glyph-icons.htm转载于:https://www.cnblogs.com/zhp404/articles/4292995.html...
做企业网站支付功能/短视频推广渠道
前言: 初步学习接触Spring框架使用,而在这里对自己刚学的Aop使用做个小篇幅的总结,方便日后需要用到是可以快速入手! 仅用于对自己学习个人笔记,不做任意分享,纯属个人理解不想误认子弟! 一、Ao…...
电子商城网站建设费用/seo快排技术教程
1 大纲概述html文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类。总共有如下系列:git2 数据集数据集为IMDB 电影影评,总共有三个数据文件…...
网站做301对优化有影响/前端seo是什么
首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理…...