如何在地图上拖动鼠标进行导航?
Posted
技术标签:
【中文标题】如何在地图上拖动鼠标进行导航?【英文标题】:How can I drag the mouse on a map to navigate it? 【发布时间】:2021-03-31 02:41:02 【问题描述】:我正在统一制作地图游戏。我想在地图上拖动鼠标,让玩家可以查看地图的不同区域(是的,比如《钢铁之声 4》)。我曾尝试使用“onDrag”方法,但找不到合适的代码。有人可以链接一些文档或此方法所需的代码吗?
谢谢。
【问题讨论】:
【参考方案1】:如果你想改变相机位置,你可以简单地用这个代码来做:
public float dragSpeed = 2;
private Vector3 dragOrigin;
void Update()
if (Input.GetMouseButtonDown(0))
dragOrigin = Input.mousePosition;
return;
if (!Input.GetMouseButton(0)) return;
Vector3 pos = Camera.main.ScreenToViewportPoint(dragOrigin - Input.mousePosition);
Vector3 move = new Vector3(pos.x * dragSpeed, 0, pos.y * dragSpeed);
transform.Translate(move, Space.World);
有了这个,你就可以开始做其他事情了。
如果您想移动地图而不是相机,您也可以尝试:
private bool isDragging;
public void OnMouseDown()
isDragging = true;
public void OnMouseUp()
isDragging = false;
void Update()
if (isDragging)
Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
transform.Translate(mousePosition);
这可以作为拖放任何 2d 对象统一使用。
【讨论】:
以上是关于如何在地图上拖动鼠标进行导航?的主要内容,如果未能解决你的问题,请参考以下文章