ugui ScrollRect input release and repick

My environment:


I have a question about the input in scroll view.

look this picture;

A is a ugui’s ScrollRect.

B is node in A.

C is new node Clone from B.

D is drop area.

The function like this.

When i touch in A, i can drag A.

When i hold B more than 1 second. Create a new one and pick it, it’s C. Now i can drag C by my touch point.

If i release touch in D area ,C will join it.

If other,C will been destroy.

But if i hold B less than 1 second, and move. it will drag A.

I create a c# script named “FunctionNode”, and give “OnPointerDown”,“OnPointerUp”,“OnDrag” to “FunctionNode”.

it work well.

“_1” type: Less 1 second state.

when i touch B, “OnPointerDown” come in.

when i release after touch B, “OnPointerUp” come in.

if i move my finger after touch B, “OnDrag” come in.

“_2” type: More than 1 second state.

When i pick C up, “GetComponent().raycastTarget = false” this will make C not answer input event and the B who has touched by me will keep answer input event.

so, like “_1” type, all function will be work. And i can check the drop target in “OnPointerUp” function.

But only one question.

if i don’t pick C up, and move my finger. B’s “OnDrag” will come in.

I can check if i has picked C in “OnDrag” function. that could decide current move is to drag C or Releas B to drag A.

But i don’t found any function to do this.
i have other way to resolve this issues. but i also want to know, how to send this event or a new event to ScrollRect and drag it.

omg,2 day later but no answer.

i’m fix it by myself.

here is code

	eventData.pointerEnter = m_Scro.gameObject;
	eventData.pointerPress = m_Scro.gameObject;
	eventData.rawPointerPress = m_Scro.gameObject;
	eventData.pointerDrag = m_Scro.gameObject;