通过详细面板可以查看目标的详细信息
访问场景里的类时,需要通过Player Controller来进行访问,其它的访问方式不易维护,也不安全
组件
组件说明,例如游戏技能可以制作成一个个组件,角色可以通过组装组件来获得技能;
1)场景组件,新建一个Actor后,会有一个默认的场景组件
添加组件
部分组件说明:
2)Audio:声音组件,可以用来播放声音
声音组件使用示例:
先将wav的声音文件拖入UE4
在Actor里创建一个Audio,选择一个声音文件,再将Actor拖放到场景里就能播放声音
3)粒子组件
创建一个粒子组件
直接将粒子系统拖入场景中也能得到同样的效果
4)灯光组件
灯光组件类似粒子系统,直接拖拽到场景里和放到Actor里效果是一样的
5)文本组件
导航网格
本地数据库
创建一个SaveGame类和一个GameInstance类
GameInstance类说明,该类存在于游戏之中,只有在游戏结束时才会结束,并且不会随着关卡的改变而变动,所以该类可以作为承载SaveGame的类;
SaveGame为重命名为saveData,gameInstance重命名为myGameInstance
项目设置里将游戏实例更改为自己创建的myGameInstance类
打开saveData类,就可以其中创建变量存储数据
在gameInstance类中自定义一个save的接口和一个load的接口,用于数据的存储和读取
cast可以进行强制类型转换
删除
csv和json
csv可以将游戏中数据,如怪物的数据(用结构体保存:name,hp ,mp,ep)导出为csv格式,然后手动填写更改后再导回代码
创建结构体
创建数据表格
在数据表格添加数据
获取数据表格里的数据
新建一个Actor,并放入场景中,创建一个数据表格的变量
UE4服务端与客户端
1)客户端是基于显示的,服务端是基于数据的,变量、事件都可以设置同步的方式;
2)UE4的服务端会将客户端数据在服务器上进行数据模拟,然后将结果同步到各个客户端;
3)客户端里,除自己操作的角色之外(本地玩家),其它的都属于模拟玩家,因此,只能获取自己角色的playControl,无法获取其它玩家的playControl;
4)客户端同步数据时,只需要同步所控角色视线范围内的数据;
新建一个Actor
5)事件里的Switch Has Authority可以用来识别当前游戏是运行在服务端还是客户端,Authority代表服务端,Remote代表客户端;
6)变量的同步说明:none表示该变量运行在本地(不区分服务端本地和客户端本地),不需要同步,Replicated表示该变量一定是在服务端运行,客户端是没法更改数据的
7)自定义事件运行选项
可靠函数勾选上后,如果客户端丢包,服务器会补上丢失的包,这样会造成延时,且有可能使事件缓冲溢出,不勾选时,不会补上丢失的包;
8)播放里可以设置运行专用服务器
session
1)create session:该类只能由服务端创建,创建好后,服务器会创建一个默认的ip和端口,然后监听客户端的请求;服务端可以创建多个session;
2)find sessions:该类只能由客户端创建,用来和服务端通讯;
蓝图下多人游戏部署示例
新建一个第三人称的蓝图游戏,在map里创建一个关卡,用于主界面登陆
双击保存
更改项目配置文件,打开联网功能,如果不添加下面红色方框里的配置,session相关的函数都无法使用,更改配置文件后,需要重新启动项目,配置文件才会生效;
打开新创建好的登录map,并新建一个界面控件,并创建一个垂直box,再往box里放四个按钮
编译后可以直接给按钮添加事件,如给quit按钮添加一个退出游戏事件
每个按钮上加上一个文本