我有一个图像,我已设置移动和放大和缩小。问题是可以在场景中的任何地方进行缩放,但我只希望在鼠标悬停在图像上时进行缩放。我试图使用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;
}
答案 0 :(得分:2)
这可以很容易和干净地解决。您可以在图像对象上添加事件触发器。在事件触发器组件内添加两种事件类型:指针输入和指针退出。从那时起,我将进入滚动脚本并添加一个名为canScroll的bool,以及两个名为OnHover和OnHoverExit的公共方法。当OnHover为true时,canScroll为true,反之亦然。然后,您可以在事件触发器中连接函数。