[开发者心得] 如何在距离当前玩家最近的其他玩家附近控制显示2UI

[复制链接]
1552 |0
橘色半夏 发表于 2023-4-20 18:38:37 | 显示全部楼层 |阅读模式
想实现这样一个功能:在一定范围内,如何在距离当前玩家最近的其他玩家附近显示一个UI
呐!仔细想想,其实本质上就是一个关于“范围检测”的问题嘞



什么是范围检测
根据设置的检测范围,返回在与该范围边界接触或在该范围以内的所有带碰撞的对象。
常用的有:
矩形范围检测:Gameplay.boxOverlapInLevel(起始位置,结束位置,宽度,高度,是否进行绘制)
球形范围检测:Gameplay.sphereOverlap(起始位置,检测半径,是否进行绘制)
圆柱范围检测:Gameplay.cylinderOverlap(起始位置,半径,高度,是否绘制)

根据我们的需求 ,使用球形或圆柱范围检测会比较合适,这里以球形范围检测为例。


解决方案:
1. 通过检测获得一系列对象(记得忽略自身这个Character!)
2. 获得对象中所有Gameplay.Character对象
3. 通过距离挑选出所有角色中距离当前玩家最近的character
4. 将该character的世界坐标转换为播放器的屏幕位置
5. 将上一步的位置赋给UI对象(这里可以自定义加一个offset哦)


代码示例:
回答.jpg
回答2.jpg

拓展:
如果友友们想设置为世界UI,那么就不需要第4步的投影坐标了哦,另外有关世界UI的使用可以参考下面这篇文章:
https://forum.ark.online/forum.php?mod=viewthread&tid=1330

回复

使用道具 举报

热门版块
快速回复 返回顶部 返回列表