90天入门UE引擎开发--学习日记(36/100)

Gameplay框架概述 

所有物体的继承关系都可以通过下面的方法搜索得知 

51713cb985714b16a9a4499dbb94602c.png

pawn:创建怪物或者NPC

character:接受输入让角色运动等

玩家控制器:

4085fa3f0ebf4ff9859be2723cdb5587.png

 游戏模式基础:(一些规则:玩家如何加入游戏,是否可以暂停游戏,获胜条件等)

这里要改成GameMode而不是GameModeBase

e90a09204c814e9b90b92a8dc07c0fd9.png

d8743e552da4491c8b88ca4b4d3c029b.png

d63724f7ce0e4d7180fb3ece2d9600dc.png

 GameState:用来保存数据,场景里不可见,继承于info

PlayerState:保存状态,多少玩家、玩家的状态等

89d174b60a114862b54da9cd302263c7.png

旁观者:多人游戏

 

打开BP_character,设置人物

8518219d8f9d470a8de3339bce68b286.png

设置角色移动 (第一人称)

ede99c8f861d4157aa94ffae678245c8.png

弹簧臂摄像机: 

 f71eafd4d6894b2084aa9788ca9fbb55.png

至此,一个第一人称的角色已经创建好了 

下面来做第三人称的

5b94f3c8e442404582f36f6afb057fe6.png

5b62240a15084f4cb4296f88b38cc04a.png

a515211a23a04b5ebc01d8351c60bd62.png

 设置跳跃以及弹射

d20d6e39573b4689969a47793a930fcf.png

 64ec8b59b6c64ecd9c141af78c99b76f.png

 可以通过重写函数来更改函数:

 ce4eb83062f64068aa9ec3726b709c5b.png

 销毁一个NPC

创建一个NPC(actor类)

ff2fc9f498ef4b06b007e7fc8d4734a5.png

ce25332e39074aa393ed1171f26fbabf.png

 转移输入

角色的输入原本只在自己脚本内成立,如果想NPC得到角色的输入,可以通过在NPC脚本加一个enable input来实现

60bb41f424f349d18b4336c72fde8aa5.png

 这样子做,当角色靠近NPC时,角色的前后移动输入就被NPC吸收走,角色不能移动了,但是输出了“NPC Move Forward”的字样

07b755c7065c40d8b98f287c6eace4ac.png

 事件:被点击

 打开BP_PlayerControler,勾选下面的细节

 a77c1251d0344690a5a97f17acbd56c4.png

在NPC的蓝图里写:

a25997de5ff74e348daff852718cf8aa.png

效果: 

161d5783de044d639026ce10a14e42f6.png

 鼠标显示的第二种方法

3c5efe9aa19c4d3f81d1471e4c4d4b76.png

鼠标悬停事件 (开始/结束)

BP_controler:

d784699826b04d3a86cf6c6dfeae26d1.png

NPC蓝图里: 

57d4d1892dd746f3a47fd4f92db93e84.png

 效果:

0dd9de16059c4171babffc2be2700c5a.png

鼠标触控(手机、ipad上) 

92bb0676aa1a43eca315d550226e5d7e.png

d00ba8005c09442ea6d0e6f8a85e7503.png

伤害(任意伤害、点状伤害、射线伤害) 

任意伤害

NPC蓝图里:

4e9c041d05e74c2dbebca9934da7ff23.png

46f61e96f84d4d33bef6589879aa65f0.png

角色蓝图里:

0cd2697dc0524c5783c4247ca6d21fc8.png 02df3a096c7d42139f0a07718ff07406.png

 血量扣除

新建一个inter变量Hp血量,默认值100

08e81f1447ea4d47badfca6e0e438611.png

30ba8c3515284936ab4f742835af0c7c.png

效果: 

 4dd50c4cbb2a428e939219fcdd92a808.png

Damage Type伤害类型

新建一个伤害类型actor,命名为BP_Damage 

534f7b185a11441ba87c5e0ecf3454d0.png

6a2f0373489643418c0099704ac352e5.png b629b23bf31943cf9f086421367be0c4.png

78f685718cec4c7faed6d5b1f2eb5a0e.png

 可以根据不同的伤害类型,设置不同的伤害值

Instigated By(伤害来自谁)

df0ba6557f104f42b9a60571a8ca92ef.png

98ed67a101114358b824f4c87b42c2bb.png

 3b6877721611430585490295be423df0.png

 Damage Causer

b5cde830ba35475ca3bb349b46346f32.png

415a06eb95e34b5daf957ae0f0ecd0a1.png

ea1fc91d2f0344df9d1cead4bb5cfed0.png

Damage Prevention Channel伤害过滤 

 overlap+纯查询无物理碰撞197769d9d3404014af8ab17d79bbe485.png

点状伤害(子弹) 

如图创建一个子弹actor蓝图BP_Bullet(改小子弹半径与碰撞球半径)

fa5e93a376cf4899a98f1b9e843f3a65.png

48f278cc03d048f4a20f09c413da780e.png

 加上ProjectionMovement组件,初速度1000(小球就可以做弹出的抛物线运动了)

de88b42b62784ff385821f32aff48481.png

ebb2686ba92b4dcabff2576ca0f0623a.png

06d7138f3e5947bea25a282f3ac8b138.pngdb1720cce2b540469193bf3dcd35b901.png 52b798d612cf46f2beaac7a451c82748.png

 应用点状伤害

Base Damage 伤害值10

0feaeeb0bbfe4e539beb24c59c1f6a22.png

 点状伤害 vs 射线伤害

格式化文本Format Text

749eb1434af64085b2b6b8d111914c9c.png

 24f1cb703ecc4d628e2a24d4c9619dc5.png

 绘制调试线条draw debug line

5307f18be1d1431e886419e6636e120b.png

81d60fadf0e649b1b44df3341c5d4310.png 7bde742965b34f8988459681059bd93b.png

 Hit Component

同样写在文本里

770f5a42a17a410686e55d237962d26e.png

 因为

9769151dacb24f2db9eece87366408ec.png

Bonename(可以根据不同部位设置不同的伤害值)

这个骨骼网格体碰撞类型改为all block

4382f49167cd452ea0d85729a05b6b2b.png 9154cb68e0bc46e3b5411612fe7eeb00.png

命中事件 & 命中距离

 af279f9ab97b4128bc5e5698840675b8.png

Phy Mat: 

给物体换好新材质

38b36d853bf7421a9d1b1af4e5d5520c.png

子弹类里面勾选: 

 4e86098ab3ac407983f517f823b69863.png

(勾选移动时追踪复杂碰撞

d84035e136634ba8b3a6699c3f2ca618.png

 )

6ce833b4b43545ea9c0d709af4463d96.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值