- Home /
Question by
eerfanshirazi73 · Oct 16, 2019 at 12:21 PM ·
unity 5scrollviewdraggingscreenspacedrag and drop
drag from scrollview to outside with screen bounds
i want drag content items outside of scroll + items cant drag outside of screen bounds
this is my drag class for limit object dragging inside screen bounds and this work fine for any object
public class MyDrag : MonoBehaviour, IDragHandler
{
private RectTransform myRectTransform;
private Vector2 guiSizeHalf;
public Vector2 screenSize;
private Vector2 targetRes;// Set this to whatever your target resolution is.
private Vector2 screenReciprocal;
private GameObject canvas;
public void OnDrag(PointerEventData eventData)
{
Vector3 newPos = Vector3.zero;
int deltaX = (int)((eventData.position.x - screenSize.x * 0.5f) * targetRes.x * screenReciprocal.x);
deltaX = (int)(Mathf.Clamp(deltaX, (-targetRes.x * 0.5f + guiSizeHalf.x), (targetRes.x * 0.5f - guiSizeHalf.x)));
newPos.x = deltaX;// deltaX value is assigned to newPos.x
int deltaY = (int)((eventData.position.y - screenSize.y * 0.5f) * targetRes.y * screenReciprocal.y);
deltaY = (int)Mathf.Clamp(deltaY, (-targetRes.y * 0.5f + guiSizeHalf.y), (targetRes.y * 0.5f - guiSizeHalf.y));
newPos.y = deltaY;// deltaY value is assigned to newPos.y
//The position of the dragged object is defined.
myRectTransform.anchoredPosition = new Vector3(newPos.x, newPos.y, newPos.z);
}
void Start()
{
myRectTransform = (RectTransform)transform;
DefineScreenValues();
}
void DefineScreenValues()
{
screenSize = new Vector2(Screen.width, Screen.height);
screenReciprocal = new Vector2(1 / screenSize.x, 1 / screenSize.y);
targetRes = new Vector2(720.0f, 1280.0f);
guiSizeHalf = new Vector2(myRectTransform.rect.xMax, myRectTransform.rect.yMax);
}
}
for example bottle cant drag outside edge screen https://gfycat.com/delectabletattereddwarfmongoose
but i want do the same for items of scrollview and this code not working for that
Comment
Your answer
Follow this Question
Related Questions
Dynamically adding (prefab) Buttons to a ScrollView 0 Answers
Making scrollview single-direction while allow dragging parent in other diration 2 Answers
Unity 5 UI Scroll Rect Problem 0 Answers
Collision while dragging in Canvas with IDragHandler 0 Answers
Following instruction for drag and drop 3d object unity but not working 1 Answer