这次分享一个我在DynamicCombatSystem里面学来的一个功能——就是判断攻击的位置,例如在黑暗之魂中玩家经常要用到背刺,那么就得站到敌人的背后进行攻击,如何判断玩家是在敌人的背后呢?

Step1
创建一个枚举,有四个位置,前、后、左、右

Step2
在玩家(攻击者蓝图)创建一个函数GetHitDirection,添加参数From(攻击者)和To(被攻击者),返回值就是刚刚创建的枚举(HitDirection)。

Step3
在函数中创建3个局部变量HitDirection(E_HitDirection)、LocalFrom和LocalTo.LocalFrom 和 LocalTo主要是用来保存传进来的From 和 To,这样就可以直接用这两个局部变量来写蓝图,显得不那么乱。

Step4
利用向量的点乘结果可以得到两者之间的夹角余弦值,通过这个就可以判断,比如看下面这个蓝图,获取敌人的right vector和从敌人到玩家的向量unit direction,用这两个向量点乘,如果结果小于0说明夹角大于
372



被折叠的 条评论
为什么被折叠?



