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

由于聊天对象需要支持“可复制”和每个客户端都发给一个,所以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对象中调用

[UE4]一分钟实现聊天系统的更多相关文章

  1. UE4新手引导之下载和安装虚幻4游戏引擎

    1) 进入虚幻4的官方主页(https://www.unrealengine.com/) 这里你可以获得关于虚幻4的最新资讯,包括版本更新.博客更新.新闻和商城等.自2015年起,该引擎已经提供免费下 ...

  2. Python写各大聊天系统的屏蔽脏话功能原理

    Python写各大聊天系统的屏蔽脏话功能原理 突然想到一个视频里面弹幕被和谐的一满屏的*号觉得很有趣,然后就想用python来试试写写看,结果还真玩出了点效果,思路是首先你得有一个脏话存放的仓库好到时 ...

  3. 如何使用Xcode分析调试在真机运行的UE4 IOS版游戏

    写本文的是因为UE4 官方文档虽然也有,但主要讲的是是用UE4Editor把游戏打成一个IPA包的形式发布的方法 而对于想通过Xcode分析UE4的渲染流程来学习或优化的朋友,那官方文档的资料还是不够 ...

  4. 游戏开发之UE4添加角色到场景中

    接着上次继续学习,现在我们已经有了一个场景并且运行了,我们需要添加一个角色到场景中.要这样做,我们必须从UE4的GameFramework类继承它. 一. 创建一个从Character类继承的类 从基 ...

  5. Houdini技术体系 基础管线(二) :Heightfiled与UE4的无缝导入以及对World Composition的支持

    Authored by TraceYang 前言    传统的制作做比较真实大世界3D关卡地形时,通常的采用的方式是把HeightMap和SplatMap(Layer Mask)导入到引擎的地形系统里 ...

  6. 制作高仿QQ的聊天系统(下)—— Adapter & Activity

    一.适配器 1.1 分页显示数据 因为聊天信息数目很多,所以adpter需要做分页处理,这里的分页处理是我自己实现的,如果有更好的办法欢迎在评论中告知.我们从友盟的反馈SDK中能得到聊天的list,我 ...

  7. 制作高仿QQ的聊天系统(上)—— 布局文件 & 减少过度绘制

    由于没有自己的服务器,我就找了个能实现双方通信的SDK,这个SDK是友盟的用户反馈SDK.本系列的博文关注的不是网络通信,而是如何在网络通信机制已经做好的情况下,做出一个可用的聊天系统.其实,刚开始做 ...

  8. UE4随笔(一)准备过程

    19号,也就是中国时间20日凌晨,虚幻4放出了"订阅制"这个重磅炸弹,估计出乎大多数人的想象,已经不止一个同事表示"自己的引擎这下没用了". 笔者前天搞定了付款 ...

  9. 虚拟现实-VR-UE4-编译UE4源码

    通过Git将UE4源代码获取到本地计算机 切记路径不要有中文 这里面我已经在进行编译了,有部分文件是多余出来的, 第一步就是点击 setup.bat批处理,这个过程回取决与你的网速的快慢,我等了一下午 ...

随机推荐

  1. Java基础五(方法)

    今日内容介绍1.方法基础知识2.方法高级内容3.方法案例 ###01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. ###02方法的定义格 ...

  2. 2013级计算机学院数字媒体专业李成梁(笛卡尔积,概率树状图)& 学生选课

    初中数学问这个向量 ( *  , 计算学院 , * , *  ) 任取一个向量来自计算机的概率     4*1*100*10000/ 8千万 限定在计科院数字媒体技术专业大二上期选课这个小的范围 学生 ...

  3. goreplay 镜像nginx web app流量

    goreplay 是一个很不错的流量拷贝,复制工具,小巧,支持一些扩展,当然也提供了企业版,企业版 功能更强大,支持二进制协议的分析 备注: 演示使用docker-compose 运行,测试镜像流量到 ...

  4. (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80

    问题说明80端口被占用,用netstat -nlp |grep :80命令看看有什么进程占用了80端口,发现是httpd进程. 没想到安装了两个apache,我安装apache2.4的时候删除了2.2 ...

  5. oracle-srvctl-output

    ############################## [grid@rac01 ~]$ crsctl query crs administratorCRS Administrator List: ...

  6. 人才需求之Java程序员与AI程序员

    据100offer报告显示:2018年Java人才市场「高开低走」的动荡局势.整体求职难度变大,且全年波动更剧烈,淡旺季区别明显.企业发出的Java面邀总数几个季度连续下跌,Q4 甚至比去年同期下降了 ...

  7. webpack 4 升级点

    webpack 4 升级点: 默认entry为./src,默认output为/dist sideEffects 在webapck2开始支持ESModule后,webpack提出了tree-shakin ...

  8. Hive Shell 命令详解

    Hive服务介绍 Hive默认提供的cli(shell)服务,如果需要启动其他服务,那么需要service参数来启动其他服务,比如thrift服务.metastore服务等.可以通过命令hive -- ...

  9. Linux patch命令详解

    Linux patch命令 Linux patch命令用于修补文件. patch指令让用户利用设置修补文件的方式,修改,更新原始文件.倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行.如果配合 ...

  10. python获取代理IP并测试是否可用

    # coding: utf-8 import urllib2 import re import time def getDL(page): url = 'http://www.xicidaili.co ...