上一次修改时间:2019-02-24 02:31:42

虚幻4初级教程下

  1. 通过详细面板可以查看目标的详细信息

    图片.png

    图片.png

  2. 访问场景里的类时,需要通过Player Controller来进行访问,其它的访问方式不易维护,也不安全

    图片.png

  3. 组件

    组件说明,例如游戏技能可以制作成一个个组件,角色可以通过组装组件来获得技能;

    1)场景组件,新建一个Actor后,会有一个默认的场景组件

    图片.png

    添加组件

    图片.png

    图片.png

    部分组件说明:

    图片.png

    2)Audio:声音组件,可以用来播放声音

    声音组件使用示例:

    先将wav的声音文件拖入UE4

    图片.png

    在Actor里创建一个Audio,选择一个声音文件,再将Actor拖放到场景里就能播放声音

    图片.png

    图片.png

    图片.png

    3)粒子组件

    创建一个粒子组件

    图片.png

    图片.png

    图片.png

    图片.png

    直接将粒子系统拖入场景中也能得到同样的效果

    图片.png

    图片.png

    4)灯光组件

    灯光组件类似粒子系统,直接拖拽到场景里和放到Actor里效果是一样的

    图片.png

    图片.png

    5)文本组件

    图片.png

    图片.png

  4. 导航网格

    图片.png

    图片.png

  5. 本地数据库

    创建一个SaveGame类和一个GameInstance类

    GameInstance类说明,该类存在于游戏之中,只有在游戏结束时才会结束,并且不会随着关卡的改变而变动,所以该类可以作为承载SaveGame的类;

    图片.png

    图片.png

    图片.png

    SaveGame为重命名为saveData,gameInstance重命名为myGameInstance

    图片.png

    项目设置里将游戏实例更改为自己创建的myGameInstance类

    图片.png

    打开saveData类,就可以其中创建变量存储数据

    图片.png

    在gameInstance类中自定义一个save的接口和一个load的接口,用于数据的存储和读取

    图片.png

    图片.png

    图片.png

    cast可以进行强制类型转换

    图片.png

    图片.png

    删除

    图片.png

  6. csv和json

    csv可以将游戏中数据,如怪物的数据(用结构体保存:name,hp ,mp,ep)导出为csv格式,然后手动填写更改后再导回代码

    创建结构体

    图片.png

    图片.png

    创建数据表格

    图片.png

    图片.png

    图片.png

    在数据表格添加数据

    图片.png

    获取数据表格里的数据

    新建一个Actor,并放入场景中,创建一个数据表格的变量

    图片.png

    图片.png

    图片.png

    图片.png

  7. UE4服务端与客户端

    1)客户端是基于显示的,服务端是基于数据的,变量、事件都可以设置同步的方式

    2)UE4的服务端会将客户端数据在服务器上进行数据模拟,然后将结果同步到各个客户端

    3)客户端里,除自己操作的角色之外(本地玩家),其它的都属于模拟玩家,因此,只能获取自己角色的playControl,无法获取其它玩家的playControl;

    4)客户端同步数据时,只需要同步所控角色视线范围内的数据;

    新建一个Actor

    5)事件里的Switch Has Authority可以用来识别当前游戏是运行在服务端还是客户端,Authority代表服务端,Remote代表客户端;

    图片.png

    6)变量的同步说明:none表示该变量运行在本地(不区分服务端本地和客户端本地),不需要同步,Replicated表示该变量一定是在服务端运行,客户端是没法更改数据的

    图片.png

    7)自定义事件运行选项

    图片.png

    可靠函数勾选上后,如果客户端丢包,服务器会补上丢失的包,这样会造成延时,且有可能使事件缓冲溢出,不勾选时,不会补上丢失的包;

    图片.png

    8)播放里可以设置运行专用服务器

    图片.png

  8. session

    1)create session:该类只能由服务端创建,创建好后,服务器会创建一个默认的ip和端口,然后监听客户端的请求;服务端可以创建多个session;

    图片.png

    2)find sessions:该类只能由客户端创建,用来和服务端通讯;

    图片.png

  9. 蓝图下多人游戏部署示例

    新建一个第三人称的蓝图游戏,在map里创建一个关卡,用于主界面登陆

    图片.png

    双击保存

    图片.png

    更改项目配置文件,打开联网功能,如果不添加下面红色方框里的配置,session相关的函数都无法使用,更改配置文件后,需要重新启动项目,配置文件才会生效

    图片.png

    打开新创建好的登录map,并新建一个界面控件,并创建一个垂直box,再往box里放四个按钮

    图片.png

    图片.png

    编译后可以直接给按钮添加事件,如给quit按钮添加一个退出游戏事件

    图片.png

    图片.png

    每个按钮上加上一个文本

    图片.png

    图片.png