阅读 85

UE4 蓝图 生成个体单位 查看独立信息 《重生之我叫张三》

前言

还是那个RTS游戏视频的复现 好消息是到了生成个体单位后,源视频支持1080P,省的看的费劲。
具体效果就是在地图上任意位置生成单位,点击后查看个体的HUD。复制代码

image.png

开始讲咯

资源生成BP <SPAWN被翻译成了产卵>

从头开始得从MASTER那块来说复制代码

资源单位 <每次实例都会随机变化的TA>

先说说资源单位
逻辑上就是一个带有MESH的ACTOR蓝图 外挂了随机变量复制代码

image.png

让后编辑后就开始变了复制代码

image.png

image.png

效果表现和Blender中的粒子系统不一二至,随机数嘛,套上去就开始变身了。复制代码

资源单位生成区域 <拉一片地 生一片仔>

 核心就是弄个射线检测,撞到地形就开始生成对应ACTOR。 
复制代码

image.png

我把ResourceType这个Param设置为上面提的随机资源生成MasterBP的引用。就可以乱变了。
然后要设置一个LocalCounts 变量暴露出去好设置生成固定单位数量
之后就用边界弄个立方体范围,随机打点,射线打地。复制代码

image.png

image.png

附加定时器生成资源 <tick tick 生生生>

 为了实现定时器和游戏时间相结合 是需要搭上上一篇的# 《我开始了 太阳开始转动了 》的内容。
 也就是GameState和PlayController 获取对应的时间相关的变量 GameSpeedModifier 并且搭上来自GameState的顺风车
 绑定到他的炸弹人叫做update Game Speed的dispatcher 
复制代码

image.png

第一步就是获取当前设置下的GameState和PlayController的引用对象
第二步就是绑定DISPATCHER每当游戏时间速度变化时调用重置定时器的时间
其中的游戏时间速度变化需要搭上上一篇的时间HUD。复制代码

image.png

长这个样的,减慢停止加速,三个白键是这么告诉你的。复制代码

GameTimeHUD

GameState的Dispatcher:GameSpeedController

SourceSpawnBp:自定义事件:GetGameSpeed

image.png

原视频中支持的游戏时间和现实时间的切换是用enum进行设置的复制代码

image.png

这一块是在BeginPlay序列的最后复制代码

image.png

承接上文的区域资源生成,独立出来用于生成单个资源复制代码

image.png

人物单位生成 <人造人造人>

都是人单位了,NAME SEX AGE BIRTHDAY起码都是要的复制代码

出生时先把性别决定下来

这里的MATERIAL实例用于之后的材质复色区别性别复制代码

image.png

image.png

image.png

原视频中使用STRUCT进行了数据的存储。就是上一个图中break后拉下来一长片的。
同时进行了名 姓的区分 顺道给了个便宜贴图。
贴图的类型居然是slate 不是image复制代码

image.png

出生后再把生日定下来

这个出生时期需要把age与游戏设定时间相减 而这个GAME TIME是在GameState中设置的 需要一个GameState的ref调用对应的function
当然如果是2月29号出生 会有BUG 算你厉害复制代码

image.png

每当生日 老妈就会来叫你

在GameState中设置Dispatcher  
复制代码

image.png

同时还需要在原GameState中的SetCalender Function修改添加点复制代码

image.png

然后把生成的PAWN绑定上去复制代码

image.png

自己写个CheckBirthday 如果生日是游戏时间当天是不会up的 上一步有了dayUpdate>0的判定复制代码

image.png

按V一键产仔

这时候需要回到PlayController中了 把Input和Camera的功能都放在里了。
调用按下的POSITION数据 spawn ACTOR 就完事了
人物下方的红圈贴花效果需要自己去原视频看复制代码

image.png

image.png

人物数据查看 <午时已到 biubiubiu>

整体难度就是HUD和UnitMaster的信息交互复制代码

创建人物信息HUD <张三医院出示单>

image.png

建立人物信息链接 <抽血验人>

记得暴露出去 一会要出去链接复制代码

image.png

回到PlayController加上ref信息 
复制代码

image.png

你问我这个ref哪里设置的 产仔的时候就标记了复制代码

image.png

人物HUD数据设置差不多就这个意思意思复制代码

image.png

PlayController对应Dispatcher设置 <点击抽血>

image.png

回到UnitMaster中 那个人物生成ACTOR绑定上去复制代码

image.png

custom事件 这里==self做了一个判断自身是否符合要求 然后调用HUD把自己数据绑上去就没啥了 这里的unitRef 需要BeginPlay中提前设置复制代码

image.png

上回暴露出去的接口就绑好了 数据也通了复制代码

image.png

总结

生了一个 自己看看复制代码

image.png


作者:RIHASU
链接:https://juejin.cn/post/7015461828381802503

文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐