• [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对象中调用

  • 相关阅读:
    【持续更新】Java知识点整理-util
    【持续更新】Java知识点整理-基础
    【持续更新】Java知识点整理-JVM
    notepad++中写markdown
    VirtualBox中Alpine Linux + Docker安装记录
    Alpine Linux配置网络
    从编码的历史了解编码
    关于摄影器材的一些知识点
    服务器(Linux)上运行python总结
    命令行运行Python脚本时传入参数的三种方式
  • 原文地址:https://www.cnblogs.com/timy/p/9992030.html
Copyright © 2020-2023  润新知