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

  • 相关阅读:
    正方形矩阵顺时针旋转90度
    225. Implement Stack using Queues
    leetcode上题目的分类
    215. Kth Largest Element in an Array
    Android基础_Service
    Android基础_ContentProvider组件
    java struts学习-拦截器
    Jquery_基础(三) ajax与json
    Jquery_基础(二) 包装集
    Jquery_基础(一) 常用方法与选择器
  • 原文地址:https://www.cnblogs.com/timy/p/9992030.html
Copyright © 2011-2022 走看看