【UE4】游戏中选中物体,物体边缘高亮的实现方法!!

常见的游戏中,当玩家对准、选中一个可以被操作的物体时,物体的边缘会亮起来,就像下面这两个图中的效果,我也去查了下如何实现,然后来分享下学习经验。
【UE4】游戏中选中物体,物体边缘高亮的实现方法!!_第1张图片

如何实现?——

**这是基于像素深度,通过后期处理实现的描边,**材质算法原理有点复杂,后期我会去学习整理思路然后再写一篇学习笔记来分享,
这里就先直接附上从其他人那里嫖过来的材质链接(要用到)
链接:https://pan.baidu.com/s/1eTfzCg6
密码:dqcx。
(原文链接:https://blog.csdn.net/qq_36409711/article/details/78833726)

Step 1 ——添加后期处理材质

【UE4】游戏中选中物体,物体边缘高亮的实现方法!!_第2张图片

Step 2——给可以被选中的物体添加接口

【UE4】游戏中选中物体,物体边缘高亮的实现方法!!_第3张图片
在这里插入图片描述
创建两个函数,一个是物体高亮和取消物体高亮
【UE4】游戏中选中物体,物体边缘高亮的实现方法!!_第4张图片
创建几个物体,Box和Sphere继承自PickUp
【UE4】游戏中选中物体,物体边缘高亮的实现方法!!_第5张图片
【UE4】游戏中选中物体,物体边缘高亮的实现方法!!_第6张图片
PickUp类继承接口并实现Select和Deselect函数
tips:
这里我们可以再edit窗口查看ue4引擎再渲染的时候就已经处理好了像素深度
【UE4】游戏中选中物体,物体边缘高亮的实现方法!!_第7张图片
【UE4】游戏中选中物体,物体边缘高亮的实现方法!!_第8张图片
我们在select和deselect函数设置的就是图中红色箭头指向的这个参数,可以看到在勾上后这个物体就可以在custom depth中出现

Step3——box检测物体

定义一个变量Target
在这里插入图片描述
【UE4】游戏中选中物体,物体边缘高亮的实现方法!!_第9张图片
从屏幕的中间向前3米发射矩形射线
【UE4】游戏中选中物体,物体边缘高亮的实现方法!!_第10张图片
只对有接口的物体有反应
接下来就是各种情况的判断:
【UE4】游戏中选中物体,物体边缘高亮的实现方法!!_第11张图片
一.没有检测到物体的时候:
1.之前有一个物体被检测到且高亮:那么就取消前一个物体高亮并把target设置为空值
。。。。

二.检测到物体的时候:
1.之前没有检测到物体:
2.之前检测到了物体:
.之前检测到的物体是不是同一个:是同一个就不变,不是同一个就取消前一个的高亮并把target变成当前的物体,并把当前的设置为高亮,
.
等等等…

【UE4】游戏中选中物体,物体边缘高亮的实现方法!!_第12张图片
最终效果…

你可能感兴趣的:(【UE4】游戏中选中物体,物体边缘高亮的实现方法!!)