我们在做攻击敌人的回馈时候,除了基础的血量UI变化,受击动画之外,还要朝向player,不然敌人看上去就特别呆瓜,具体代码如下:
function refreshHp(idx,hp,hurtEnemyType)
local e = par:FindFirstChild("worldboss"..idx) --敌人
if e then
e.Health.Value = hp
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
if e.PrimaryPart then
local playerPosition = humanoidRootPart.Position
local modelPosition = e.PrimaryPart.Position
--忽略y轴的影响,只让怪物方向朝向人物即可。
local flatPlayerPosition = Vector3.new(playerPosition.X, modelPosition.Y, playerPosition.Z)
local lookVector = (flatPlayerPosition - modelPosition).Unit
local newCFrame = CFrame.new(modelPosition, modelPosition + lookVector)
e:SetPrimaryPartCFrame(newCFrame)
end
--执行受击特效
actionManager:ShowHitEffect(game.Players.LocalPlayer,e,damage,hurtEnemyType)
if hp<=0 then
--敌人死亡之后执行
end
end
end
如果怪物的模型与人物不一般大,最好还是忽略一下y轴,不然一旦有碰撞,屏幕会抖动,怪怪的。