zoukankan      html  css  js  c++  java
  • [UE4]一分钟实现聊天系统

    天系统:客户端发消息到服务器端,服务器端把收到的消息广播到所有客户端。

    由于聊天对象需要支持“可复制”和每个客户端都发给一个,所以GameInstance、GameModeGameState都不适合存放用来做聊天系统。

    一、PlayerController可以为聊天系统,只不过稍微有点复杂

    二、PlayerState,比较适合做聊天系统。创建一个继承自PlayerState的子类,然后关卡中设置:

     

    使用get Player State获得PlayerState对象,并使用Cast to 转换成自定义的Player State对象,就可以使用自定义Player State对象的属性和方法了。

    三、Pawn/Character,可以作为聊天系统,但是如果控制的角色死亡了,转移到观察者角色就无法进行聊天了,除非每个观察者角色也重复实现一套聊天系统。

    知识点:

    1.客户端发消息到服务器端,服务器端把收到的消息广播到所有客户端。

    2.使用Set Keyboard Focus来让聊天输入框获得键盘输入焦点

     

     

    设计UserWidget的时候,可以给UserWidget添加输入参数:Instance Editable和Expose On Spawn这2个选项加上,这样在调用Create UserWidget函数的时候就会把这个变量作为参数输入:

     如果Create Widget没有把输入参数显示出来,可以在Class中重新选择一下Chat Message就可以了。

    使用函数Is Dedicated Server判断当前执行的是否是专用服务器端,并且在专用服务器上不用创建UI,因为专用服务器本就是没有游戏界面的。

    设置鼠标是否可见和设置游戏输入模式是要通过获得Player Controller对象中调用

  • 相关阅读:
    数学之美:判断两个随机信号序列相似度
    为什么自己设计的嵌入式系统不如工业级产品稳定?
    由static来谈谈模块封装
    算法类书籍汇总
    Linux驱动:手把手教hello world驱动配置、编译进内核或为模块
    刨根问底之链表数据结构
    Redis进阶
    构建高可用的写服务
    再推荐 5 款私藏的优质 Chrome 插件
    MySQL-SQL优化
  • 原文地址:https://www.cnblogs.com/timy/p/9992030.html
Copyright © 2011-2022 走看看