在 Unity3d 中拖动 UI 图像 (C#)

Але*_*ндр 1 c# unity-game-engine

我需要制作一张地图UI。地图很大,因此用户需要缩放和拖动它。对于缩放现在我使用这个:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何用 拖动图像mouse

Ben*_*kes 5

您尝试过 IDragHandler 接口吗?

public class UIDraggable : MonoBehaviour, IDragHandler {


#region IDragHandler implementation

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

#endregion
}
Run Code Online (Sandbox Code Playgroud)

您需要在脚本顶部包含以下内容。

using UnityEngine.EventSystems;
Run Code Online (Sandbox Code Playgroud)