地图的可拖动功能以及点击寻路坐标问题

为了解决地图元素过多导致显示不全的问题,添加了地图可拖动功能。通过在Prefab中添加Rect Mask 2D和Scroll Rect组件实现拖动效果。但在实现点击地图寻路时,由于分辨率差异导致点击点与目标点存在偏差。原算法错误在于未考虑UI界面分辨率变化,新处理逻辑包括将鼠标点击坐标转换为世界坐标,并计算相对于地图组件的位置,以修正寻路偏差。
摘要由CSDN通过智能技术生成

需求:由于地图中展示的元素增加,导致地图图片被放大,在地图界面不能完全显示,所以添加可拖动功能。
解决方案很简单:prefab调整, 逻辑编写(打开地图,玩家的图标尽可能靠中心位置)
一,在prefab上进行的调整
在这里插入图片描述
注:上图中m_MapBG_img是地图界面中地图显示框,m_miniMap_img是地图资源
在第一层级中添加两个组件(自查):Rect Mask 2D 和 scroll Rect
第一个组件是为了掩藏不需要显示的地图部分
第二个组件是拖动功能(注意弹性与惯性)
二,逻辑编写
在这里插入图片描述
注:第三层级是玩家自己的位置标志
下面的方法返回的是地图初始化时的位置坐标,这里需要传入三个参数(重点在取它们的位置坐标),可见框组件,地图资源组件,玩家位置坐标

---@param pos Vector3
function TargetMapLocationByMyPos(viewImg, mapImg, pos)
	local mapPosX = 0
	local mapPosY = 0
	local viewWidth = viewImg.rectTransform.sizeDelta.x / 2
	local 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值