其他分享
首页 > 其他分享> > 【战斗】受击特效始终显示在最前

【战斗】受击特效始终显示在最前

作者:互联网

想要实现这个功能,最开始想到的是,修改对应特效材质的renderque,发现并不能达到相应的效果。于是又想到了,是否可以通过修改深度测试模式实现,
Flare
ZWrite off
// 设置深度测试模式,如果是always,前面的物体无法遮住这个物体
发现,实现是实现了,但是隔着山也挡不住别人放的特效了,不满足要求,换做法,原来是我们把这个问题复杂化了,计算受击点坐标,动态改变特效点
向量运算,原理已知我与怪物的中心点和怪物半径,把怪物当成一个圆,求交点坐标
// Returns this vector with a magnitude of 1 (Read Only).
public Vector3 normalized { get; }
tempPosition = target.Position - caster.Position
tempPosition = tempPosition:Normalize()
tempPosition = target.Position - tempPosition * m_tMonsterCfg.boundingRadius
tempPosition.y = target.Position.y

math.pi = 3.1415
local m_PI = math.pi
local tempVec = Vector3.New(0, 0, 0)
local tempPosition = Vector3.New(0, 0, 0)

—策划要求根据施法者朝向 设置特效的朝向
if caster then
tempVec.y = caster:GetRot() * 180 / m_PI
skillPlayModule:setData(guid, SkillServerDataKey.TARGET_CLIENT_ROTATION, tempVec)
end
完美实现了这个需求

标签:特效,target,tempPosition,最前,Position,caster,tempVec,受击
来源: https://blog.csdn.net/weixin_38839262/article/details/113811495