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

UE5- c++ websocket里实现调用player里的方法

# UGameInstance里直接调用


获取到引用了,就可以自然的调用。忽略

# UGameInstance里间接调用,通过代理调用


  1. 前置已经添加了websocket,具体步骤参考,链接
  2. 在UWebSocketGameInstance.h里新增代理,并在链接成功后进行绑定。
    #pragma once#include "myue521Character.h"
    #include "CoreMinimal.h"
    #include "Engine/GameInstance.h"
    #include "WebSockets/Public/IWebSocket.h"
    #include "UWebSocketGameInstance.generated.h"DECLARE_DELEGATE_OneParam(JSONMessageTrigger, FString)
    /*** */
    UCLASS()
    class MYUE521_API UUWebSocketGameInstance : public UGameInstance
    {GENERATED_BODY()
    public:JSONMessageTrigger JSONMessageTrigger;public:virtual void Init() override;virtual void Shutdown() override;TSharedPtr<IWebSocket> WebSocket;void OnConnected();void OnConnectionError(const FString& Error);void OnClosed(int32 StatusCode, const FString& Reason, bool bWasClean);void OnMessage(const FString& Message); // 接收消息时void OnMessageSent(const FString& MessageString); // 发送消息时
    private:Amyue521Character* myCharacher;
    public: Amyue521Character* getMyCharacher();};

    说明,

    1. 声明一个代理。DECLARE_DELEGATE_OneParam(JSONMessageTrigger, FString)

    2. 声明触发器。public:
          JSONMessageTrigger JSONMessageTrigger;

    3. 下面到实现类里进行绑定,我这里是在UWebSocketGameInstance.cpp里,socket链接成功后进行绑定。

  3. 绑定,并调用。这里尝试着获取到目标characher.
    Amyue521Character* UUWebSocketGameInstance::getMyCharacher() {if (this->myCharacher != nullptr) {return this->myCharacher;}
    //获取player,并转化为Amyue521CharacterACharacter* character = UGameplayStatics::GetPlayerCharacter(this->GetWorld(), 0);this->myCharacher = Cast<Amyue521Character>(character);if (this->myCharacher != nullptr) {
    //转化成功后则进行绑定JSONMessageTrigger.BindUObject(this->myCharacher, &Amyue521Character::CallBackFunMul);//模拟触发,这个触发实际应该放到收到message方法里执行FString TestHUDString = FString(TEXT("my json msg"));JSONMessageTrigger.ExecuteIfBound(TestHUDString);}return this->myCharacher;}void UUWebSocketGameInstance::OnConnected()
    {UE_LOG(LogTemp, Warning, TEXT("%s"), *FString(__FUNCTION__));GEngine->AddOnScreenDebugMessage(-1, 3.0f, FColor::Green, "Successfully Connected");this->getMyCharacher();}

    说明:

    1. 这里进行了代码简化,链接成功后将获取的player转化为目标Characher

      ACharacter* character = UGameplayStatics::GetPlayerCharacter(this->GetWorld(), 0);
      this->myCharacher = Cast<Amyue521Character>(character);
    2. 绑定

      if (this->myCharacher != nullptr) {JSONMessageTrigger.BindUObject(this->myCharacher, &Amyue521Character::CallBackFunMul);}
    3. 触发,这个触发实际应该放到收到OnMessage方法里执行

      if (this->myCharacher != nullptr) { FString TestHUDString = FString(TEXT("my json msg"));JSONMessageTrigger.ExecuteIfBound(TestHUDString);
      }

相关文章:

UE5- c++ websocket里实现调用player里的方法

# UGameInstance里直接调用 获取到引用了&#xff0c;就可以自然的调用。忽略 # UGameInstance里间接调用&#xff0c;通过代理调用 前置已经添加了websocket,具体步骤参考&#xff0c;链接在UWebSocketGameInstance.h里新增代理&#xff0c;并在链接成功后进行绑定。 #pragma…...

线性代数的学习和整理18:什么是维度,什么是秩?秩的各种定理秩的计算 (计算部分未完成)

目录 0 问题引出&#xff1a;什么是秩&#xff1f; 概念备注&#xff1a; 1 先厘清&#xff1a;什么是维数&#xff1f; 1.1 真实世界的维度数 1.2 向量空间的维数 1.2.1 向量空间&#xff0c;就是一组最大线性无关的向量组/基张成的空间 1.3 向量α的维数 1.3.1 向量的…...

Centos 6.5 升级到Centos7指导手册

一、背景 某业务系统因建设较早&#xff0c;使用的OS比较过时&#xff0c;还是centos6.5的系统&#xff0c;因国产化需要&#xff0c;需将该系统升级到BClinux 8.6&#xff0c;但官方显示不支持centos 6.x升级到8&#xff0c;需先将centos6.5升级到centos7的最新版&#xff0c…...

详解python中的映射类型---字典

概述 映射类型是“键-值”数据项的组合&#xff0c;每个元素是一个键值对&#xff0c;即元素是&#xff08;key&#xff0c;value&#xff09;&#xff0c;元素之间是无序的。键值对&#xff08;key&#xff0c;value&#xff09;是一种二元关系&#xff0c;源于属性和值的映射…...

gdal求矢量图形的形心

gdal求矢量图形的形心 #include "gdal_priv.h" #include "ogrsf_frmts.h"int main() {OGRRegisterAll();OGRPolygon* square_1 new OGRPolygon();OGRLinearRing* ring_1 new OGRLinearRing();// 添加 square_1 的点ring_1->addPoint(0, 0);ring_1-&g…...

<深度学习基础> Batch Normalization

Batch Normalization批归一化 BN优点 减少了人为选择参数。在某些情况下可以取消dropout和L2正则项参数&#xff0c;或者采取更小的L2正则项约束参数&#xff1b;减少了对学习率的要求。现在我们可以使用初始很大的学习率或者选择了较小的学习率&#xff0c;算法也能够快速训…...

Ubuntu yolov5 环境配置

查看Ubuntu版本 $ cat /proc/version Linux version 5.4.0-150-generic (builddbos03-amd64-012) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023虚拟机磁盘扩容 因为在环境搭建过程中遇到了磁盘空间不足的问题&a…...

【自执行闭包JS逆向】某网站登录MD5加密分析

文章目录 一、写在前面二、抓包分析三、加密函数分析 一、写在前面 最近工作比较忙&#xff0c;不过还是在督促自己利用有限的时间学习更新一些技术文章。互联网这个行业大家目前也都知道是非常内卷的&#xff0c;所有大家在工作之余养成良好的自主学习习惯是非常好的&#xff…...

Stable Diffuse 之 安装文件夹、以及操作界面 UI 、Prompt相关说明

Stable Diffuse 之 安装文件夹、以及操作界面 UI 、Prompt相关说明 目录 Stable Diffuse 之 安装文件夹、以及操作界面 UI 、Prompt相关说明 一、简单介绍 二、安装文件相关说明 三、界面的简单说明 四、prompt 的一些语法简单说明 1、Prompt &#xff1a;正向提示词 &am…...

【Linux】- 一文秒懂shell编程

shell编程 1.1 Shell 是什么1.2 Shell 脚本的执行方式1.3 编写第一个 Shell 脚本2.1 Shell 的变量2.2 shell 变量的定义2.3 设置环境变量3.1 位置参数变量3.2 预定义变量4.1 运算符4.2 条件判断5.1 流程控制5.2 case 语句5.3 for 循环5.4 while 循环5.5 read基本语法6.1函数6.2…...

CentOS下多网卡绑定多IP段时导致只有一个会通的问题解决

CentOS下多网卡绑定多IP段时导致只有一个会通的问题解决 虚拟机配置多个网络地址&#xff0c;结果同时只能有一个ip是通的&#xff0c; 原因&#xff1a;Linux默认开启了反向路由检查导致的&#xff0c;比如说外面访问eth0的网卡&#xff0c;而网关在eth1上&#xff0c;又或者从…...

关于实现 Vue 动态数据显示,比如数字 0 或 1 怎么显示为 男 或 女等等的动态显示实现方法

具体 Vue 代码演示&#xff1a; test.vue 文件演示&#xff1a; <template> <!-- 方法一 --> <div>{{ test.data 0 ? 男 : 女}}</div><!-- 方法二 --> <div>{{ test.data 0 ? 男 : }}{{ test.data 1 ? 女 : }}{{ test.d…...

mac制作ssl证书|生成自签名证书,nodejs+express在mac上搭建https+wss(websocket)服务器

注意 mac 自带 openssl 所以没必要像 windows 一样先安装 openssl&#xff0c;直接生成即可 生成 ssl/自签名 证书 生成 key # 生成rsa私钥&#xff0c;des3算法&#xff0c;server_ssl.key是秘钥文件名 1024位强度 openssl genrsa -des3 -out server_ssl.key 1024让输入两…...

Unix System V BSD POSIX 究竟是什么?

学习Linux系统,很多同学对这些单词概念很模糊、一脸懵逼! 黄老师觉得,了解了历史,才会真正明白这些单词的含义,坐稳、黄老师发车了!!! 首先介绍一下什么是Unix? UNIX(非复用信息和计算机服务,英语:Uniplexed Information and Computing Service,UnICS)取“UNI…...

数据集学习笔记(六):目标检测和图像分割标注软件介绍和使用,并转换成YOLO系列可使用的数据集格式

文章目录 一、目标检测1.1 labelImg1.2 介绍1.3 安装1.4 使用1.5 转换1.6 验证 二、图像分割2.1 labelme2.2 介绍2.3 安装2.4 使用2.5 转换2.6 验证 一、目标检测 1.1 labelImg 1.2 介绍 labelImg是一个开源的图像标注工具&#xff0c;用于创建图像标注数据集。它提供了一个…...

【高阶数据结构】红黑树 {概念及性质;红黑树的结构;红黑树的实现;红黑树插入操作详细解释;红黑树的验证}

红黑树 一、红黑树的概念 红黑树&#xff08;Red Black Tree&#xff09; 是一种自平衡二叉查找树&#xff0c;在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有…...

获取对象占用内存

添加依赖 <dependency><groupId>org.apache.lucene</groupId><artifactId>lucene-core</artifactId><version>4.0.0</version> </dependency>添加vm启动参数 --add-opens java.base/java.langALL-UNNAMED --add-opens java.ba…...

mysql UUID 作为主键的问题

UUID 在MySQL中&#xff0c;可以使用UUID()函数来生成一个新的UUID值。该函数的返回值是一个字符串类型&#xff0c;表示一个32位的十六进制数字&#xff0c;其中包含4个连字符“-”&#xff0c;例如&#xff1a;“6ccd780c-baba-1026-9564-0040f4311e29”。 varchar(32) 32*4…...

2023高教社杯全国大学生数学建模竞赛选题建议

如下为C君的2023高教社杯全国大学生数学建模竞赛&#xff08;国赛&#xff09;选题建议&#xff0c; 提示&#xff1a;DS C君认为的难度&#xff1a;C<B<A&#xff0c;开放度&#xff1a;B<A<C 。 D、E题推荐选E题&#xff0c;后续会直接更新E论文和思路&#xf…...

分类预测 | MATLAB实现GRNN广义回归神经网络多特征分类预测

分类预测 | MATLAB实现GRNN广义回归神经网络多特征分类预测 目录 分类预测 | MATLAB实现GRNN广义回归神经网络多特征分类预测分类效果基本介绍模型描述预测过程程序设计参考资料分类效果 基本介绍 MATLAB实现GRNN广义回归神经网络多特...

基于RAG与智能体技术构建法律领域AI应用实战指南

1. 项目概述&#xff1a;一个法律智能体的诞生最近在GitHub上看到一个挺有意思的项目&#xff0c;叫mileson/moticlaw。光看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但稍微拆解一下就能明白它的野心&#xff1a;“motic” 很可能是 “motion”&#xff08;动议、提…...

跟着 MDN 学 HTML day_55:HTML 音频与视频嵌入实战指南

在现代网页设计中&#xff0c;多媒体内容已经成为提升用户体验的核心元素。无论是背景音乐、播客节目&#xff0c;还是产品演示视频&#xff0c;都离不开 HTML 中的音频和视频嵌入技术。HTML5 为我们提供了原生的 audio 和 video 元素&#xff0c;使得在网页中嵌入媒体内容变得…...

Java后端开发德州扑克小酒馆小程序架构与源码解析

德州扑克小酒馆小程序的核心价值&#xff0c;在于依托休闲娱乐场景实现小酒馆线下引流&#xff0c;其Java后端的架构设计与源码实现&#xff0c;直接决定小程序的稳定性、可扩展性与合规性。 一、架构设计核心原则&#xff08;贴合场景&#xff0c;合规优先&#xff09; 德州…...

Cool-Request终极指南:如何高效配置全局请求头提升API测试效率

Cool-Request终极指南&#xff1a;如何高效配置全局请求头提升API测试效率 【免费下载链接】cool-request IDEA API、Java Method debug tools 项目地址: https://gitcode.com/gh_mirrors/co/cool-request 在Java API开发和调试过程中&#xff0c;Cool-Request作为一款强…...

RePKG终极指南:如何深度解析Wallpaper Engine资源包与TEX纹理转换

RePKG终极指南&#xff1a;如何深度解析Wallpaper Engine资源包与TEX纹理转换 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg RePKG是一款专为Wallpaper Engine设计的专业级资源包解…...

英特尔IPEX-LLM:大模型在CPU与GPU上的高效推理部署指南

1. 项目概述&#xff1a;当大语言模型遇见英特尔硬件如果你最近在折腾大语言模型&#xff08;LLM&#xff09;的本地部署&#xff0c;特别是手头有一台搭载英特尔酷睿或至强处理器的机器&#xff0c;那么“intel/ipex-llm”这个项目很可能已经进入了你的视野。简单来说&#xf…...

EmotionBook开源项目:构建可计算的情绪数据模型与可视化分析系统

1. 项目概述&#xff1a;一个为情绪寻找容器的数字实验最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“EmotionBook”。光看名字&#xff0c;你可能会联想到一本情绪日记&#xff0c;或者一个记录心情的App。但点进去之后&#xff0c;你会发现它远不止于此。这其实是一个…...

R 和 Python 数据可视化必备库的精华指南

原文&#xff1a;towardsdatascience.com/the-essential-guide-to-r-and-python-libraries-for-data-visualization-33be8511c976 成为某些编程语言的专业人士是每位有志于数据科学的专业人士的目标。在无数语言中达到一定水平是每个人的关键里程碑。 对于数据工程师来说&…...

Python异步编程中的上下文管理:Ctxo工具的设计原理与实战应用

1. 项目概述&#xff1a;一个轻量级、高可用的上下文管理工具最近在折腾一个需要处理大量异步任务和复杂状态流转的后台服务&#xff0c;遇到了一个老生常谈但又很棘手的问题&#xff1a;如何在不同的函数调用、异步协程之间&#xff0c;安全、高效地传递和共享一些“上下文”信…...

使用kern工具自动化构建Linux内核:从原理到实战

1. 项目概述&#xff1a;一个内核构建与管理的瑞士军刀如果你曾经尝试过编译Linux内核&#xff0c;或者需要为特定的硬件、研究项目定制一个内核&#xff0c;那么你大概率体验过这个过程&#xff1a;下载源码、配置成千上万个选项、解决依赖、漫长编译&#xff0c;最后可能因为…...