2015-09-20 88 views
1

我有一個圖像,我已設置移動和放大和縮小。麻煩的是變焦可以在場景中的任何地方完成,但我只希望它在鼠標懸停在圖像上時進行縮放。我嘗試過使用OnMouseEnter,OnMouseOver,事件觸發器,所有三個沒有碰撞器的人,一個碰撞器,一個觸發器碰撞器,以及所有圖像本身和一個空的遊戲對象。然而,這些都沒有工作......所以我絕對難住...有人可以幫我在這裏!如何在Unity 5中檢測鼠標移動到UI圖像?

這裏是我的腳本:

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; 
} 

回答

2

這可以很容易地和乾淨地解決。您可以將事件觸發器添加到圖像對象上。在事件觸發器組件中添加兩種事件類型:指針輸入和指針退出。從那時起,我將進入滾動腳本並添加一個名爲canScroll的bool,以及兩個名爲OnHover和OnHoverExit的公共方法。當OnHover爲true時,canScroll爲true,反之亦然。然後,您可以將事件觸發器中的功能連接起來。

+0

謝謝,我其實在gamedev.stackexchange上有一個答案,但它非常相似。 –