如何在Unity 5中检测UI图片的鼠标悬停?

3
我有一张图片,设置了移动和缩放功能。问题是缩放可以在场景中的任何位置进行,但我只想在鼠标悬停在图片上时才进行缩放。我尝试使用OnMouseEnter、OnMouseOver、事件触发器,这三个都没有碰撞体、带有碰撞体、带有触发器碰撞体,并且在图片本身和空游戏对象上都尝试过。然而,这些方法都没有起作用...所以我完全被卡住了...有人能帮帮我吗!
以下是我的脚本:
private float zoom;
public float zoomSpeed;
public Image map;

public float zoomMin;
public float zoomMax;

void Update () {
    zoom = (Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime * zoomSpeed);
    map.transform.localScale += new Vector3(map.transform.localScale.x * zoom, map.transform.localScale.y * zoom, 0);
    Vector3 scale = map.transform.localScale;
    scale = new Vector3(Mathf.Clamp(map.transform.localScale.x, zoomMin, zoomMax), Mathf.Clamp(map.transform.localScale.y, zoomMin, zoomMax), 0);
    map.transform.localScale = scale;
}
1个回答

4

这可以非常轻松和干净地解决。您可以在图像对象上添加事件触发器。在事件触发器组件中添加两种事件类型:指针进入和指针退出。从那时起,我会进入滚动脚本并添加一个名为canScroll的bool以及两个名为OnHover和OnHoverExit的公共方法。当OnHover为true时,canScroll为true,反之亦然。然后您可以在事件触发器中连接这些函数。


谢谢,实际上我在gamedev.stackexchange上得到了一个答案,尽管它非常相似。 - mr-matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接