Але*_*ндр 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?
您尝试过 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)