Ex

특정 RectTransform 안에 있는 오브젝트를 마우스위치로 이동시키고자할때

 if (RectTransformUtility.ScreenPointToLocalPointInRectangle(

            this.transform.parent.GetComponent<RectTransform>(),

            new Vector2(Input.mousePosition.x, Input.mousePosition.y),

            parentCanvase.worldCamera,

            out pos))

        {

            this.transform.localPosition = pos;


        }else

        {


        }



RectTransformUtility.ScreenPointToLocalPointInRectangle

public static bool ScreenPointToLocalPointInRectangle(RectTransform rectVector2 screenPointCamera cam, outVector2 localPoint);

Parameters

rectThe RectTransform to find a point inside.
camThe camera associated with the screen space position.
screenPointScreen space position.
localPointPoint in local space of the rect transform.

Returns

bool Returns true if the plane of the RectTransform is hit, regardless of whether the point is inside the rectangle.

Description

Transform a screen space point to a position in the local space of a RectTransform that is on the plane of its rectangle.

The cam parameter should be the camera associated with the screen point. For a RectTransform in a Canvas set to Screen Space - Overlay mode, the cam parameter should be null.

When ScreenPointToLocalPointInRectangle is used from within an event handler that provides a PointerEventData object, the correct camera can be obtained by using PointerEventData.enterEventData (for hover functionality) orPointerEventData.pressEventCamera (for click functionality). This will automatically use the correct camera (or null) for the given event.

출처:

http://docs.unity3d.com/ScriptReference/RectTransformUtility.ScreenPointToLocalPointInRectangle.html

+ Recent posts