Skip to content

Instantly share code, notes, and snippets.

@unity3dcollege
Created September 15, 2017 21:37
Show Gist options
  • Save unity3dcollege/f971cee86b6eb09ad4dafc49050f693c to your computer and use it in GitHub Desktop.
Save unity3dcollege/f971cee86b6eb09ad4dafc49050f693c to your computer and use it in GitHub Desktop.
using UnityEngine;
using UnityEngine.EventSystems;
public class UIZoomImage : MonoBehaviour, IScrollHandler
{
private Vector3 initialScale;
[SerializeField]
private float zoomSpeed = 0.1f;
[SerializeField]
private float maxZoom = 10f;
private void Awake()
{
initialScale = transform.localScale;
}
public void OnScroll(PointerEventData eventData)
{
var delta = Vector3.one * (eventData.scrollDelta.y * zoomSpeed);
var desiredScale = transform.localScale + delta;
desiredScale = ClampDesiredScale(desiredScale);
transform.localScale = desiredScale;
}
private Vector3 ClampDesiredScale(Vector3 desiredScale)
{
desiredScale = Vector3.Max(initialScale, desiredScale);
desiredScale = Vector3.Min(initialScale * maxZoom, desiredScale);
return desiredScale;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment