- Home /
How can I add constraints to a Rect Transform position?
Hi, I'm using this script to drag and zoom in/out into a UI image.
I want to add constraints to the UI image > Rect Transform position to avoid losing it after dragging it outside the main canvas/screen by accident.
Any clues about how to do it?
Thanks!
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
[RequireComponent(typeof(RectTransform))]
public class Draggable : MonoBehaviour, IDragHandler
{
private RectTransform rectTransform;
private float zoom;
public float zoomSpeed;
public Image map;
public float zoomMin;
public float zoomMax;
//Draggable script
private void Start()
{
rectTransform = GetComponent<RectTransform>();
}
public void OnDrag(PointerEventData eventData)
{
rectTransform.anchoredPosition += eventData.delta;
}
//Zoom In/Out script
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;
}
}
Comment
Your answer
Follow this Question
Related Questions
Keep Draggable UI window within Canvas? 1 Answer
Importing Stripes from Photoshop to Unity 0 Answers
Get mouse click world coordinates "through" UI Raw Image with Render Texture from second camera 2 Answers
Picture loaded from resource corrupted. 0 Answers
I can't see the all of UI in the phone 0 Answers