UE4随机地图生成+联网同步思路

本文介绍了一种在UE4环境中实现随机地图生成并同步到联网客户端的方法。核心思路是将随机数据和地图生成逻辑分离,由GameMode生成随机数据,然后在每个客户端连接时传递该数据,执行地图生成。具体实现包括GameMode处理随机数据生成,PlayerController接收数据,并通过地图管理类来管理地图资源的生成,使用StaticInstance优化重复静态网格的生成。该方法允许进一步扩展,如添加随机位置和场景遮挡检测等功能。
摘要由CSDN通过智能技术生成

需求背景:在联网环境下,实现地图资源随机生成并且同步。

思路是:将随机数据和地图生成资源逻辑分开编写。

逻辑流程这样:由GameMode生成一次需要用到的随机数据,然后每个客户端链接时都传入这个随机值,接着执行生成逻辑。

效果如下,

可以看到两个窗口中的资源都是同一个随机的效果。

 

具体逻辑:

GameMode~PlayerController逻辑,GM第一次更新数据(不写在BeginPlay是因为调试模式GM开始函数在第一个玩家Login之后调用,导致作为服务器的窗口没有获取到数据),接下来每次玩家登录都会把随机的数据传给玩家控制器。右边是玩家控制器的逻辑,生成了一个地图管理类专门负责生成地图资源。这个类和玩家类分开是为了方便修改生成的内容。其中RPC事件是RunOnOwningClient,仅在客户端调用.

 

函数细节:

1.GameMode中处理随机数据的生成。

GM中的生成函数:通过预设的长宽相乘获得需要保存的对象数量。然后循环给成员赋值随机值,需要其他随机信息的可以添加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值