Roblox技巧——根据player决定敌人朝向

我们在做攻击敌人的回馈时候,除了基础的血量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轴,不然一旦有碰撞,屏幕会抖动,怪怪的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值