2017-06-13 53 views
0

我需要在UI中製作地圖。地圖很大,用戶需要放大並拖動它。對於現在的變焦我用這個:在Unity3d中拖動UI圖像(C#)

public class ScaleMaps : MonoBehaviour 
{ 
    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; 
    } 
} 

如何與mouse拖動圖像?

+2

嘗試從[這裏]的'CubeDrag'腳本(https://stackoverflow.com/questions/43162188/how-can-i-click-and-drag-a-gameobject-with-the-mouse/43162862)#43162862)答案。這應該工作。 – Programmer

回答

0

你試過了IDragHandler接口嗎?

public class UIDraggable : MonoBehaviour, IDragHandler { 


#region IDragHandler implementation 

public void OnDrag (PointerEventData eventData) 
{ 
    this.transform.position += (Vector3)eventData.delta; 
} 

#endregion 
} 

您將需要包括在你的腳本的頂部以下..

using UnityEngine.EventSystems; 
+0

謝謝!現在正在工作。 –

+0

但隨着縮放將圖像的中心。如何解決這個問題? –