ue4 物品随机生成

这个只是简单的讲解一下物品生成时的概率问题,可以根据自己的需要在此基础上拓展

创建两个结构体蓝图

分别表示物体生成的位置和要生成的物体模型

在ST_Location里面创建一个Vector变量

在ST_Item里面创建两个变量

分别是当前物品生成的概率和这个物品的Actor引用

然后根据这两个结构体蓝图,创建两个数据表格

在DT_Location里面添加五行

然后我们要给这五行分别设置位置

在地图中拖出五个立方体,把这个五个立方体的位置分别设置给DT_Location

位置可以直接复制粘贴过去

 

然后把拉出的五个立方体删除

创建四个actor蓝图(添加StaticMesh,然后把Mesh修改成自己想要的模型),模型随便,不一样即可

这里为了演示用了蓝图,但是如果你要生成物品很多的话就会很麻烦,解决办法就是创建一个父类蓝图通过物品ID来修改蓝图的StaticMesh

 然后设置一下DT_Item

 

BluePrint分别设置成刚才创建的四个物品蓝图,概率分别是10,20,30,40

然后创建一个GameMod

 在世界大纲里面把游戏模式修改为MyGameMod

我们在GameMod里面实现生成物品的操作

创建一个函数,命名为GenerationItem,遍历之前创建的位置数据表格

每获取一个位置就随机生成一个物品,再创建一个函数命名为RandomItem,这个函数用来随机产生一个物品的类引用

在这个函数创建一个局部变量Arr,类型是Actor引用数组

原理就是在Arr数组中加入物品对应概率的数量,然后再打乱随机出一个物品

然后回到GenerationItem函数中调用这个函数生成物品

在事件图标的begin play后面调用GenerationItem即可

运行生成物品如下

有什么不对的地方欢迎评论区指正

有什么问题可以在评论区问我 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真的没事鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值