2017-06-13 10 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

[この](https://stackoverflow.com/questions/43162188から 'CubeDrag'スクリプトを試してみてください/マウスを使ってクリックするとマウスでドラッグする方法/ 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

しかし、そのズーミングはイメージの中心に行くでしょう。それを修正するには? –

関連する問題