RectTransformUtility.Sc r e n P o i ntTolocal Point InRectangle 의
4413 단어 Unity
하고 싶은 일
Canvas-RenderMode-Screen Space-Camera
... 을 누르다
UI 끌어당기기
알맞은 곳
http://appleorbit.hatenablog.com/entry/2015/10/23/000403
참조를 위한 Selectable, IDragHandler 추가
다음 부분은 드래그 부분입니다.
EyeStone.cs public void OnDrag(PointerEventData eventData)
{
Vector2 localPos = Vector2.zero;
var ii =RectTransformUtility.ScreenPointToLocalPointInRectangle(
GetComponent<RectTransform>(),
eventData.position,
Camera.main,
out localPos
);
_transform.localPosition = localPos;
}
이걸로 시운전을 해보면...
무지막지하다...
해결책
아래와 같이 변경한 후 정상적으로 운행한다
EyeStone.cspublic void OnDrag(PointerEventData eventData)
{
Vector2 localPos = Vector2.zero;
var ii =RectTransformUtility.ScreenPointToLocalPointInRectangle(
//親から取ってくる
transform .parent .GetComponent<RectTransform>(),
eventData.position,
Camera.main,
out localPos
);
_transform.localPosition = localPos;
}
예!
까닭
정식 문서를 다시 보니 이렇다
Transform a screen space point to a position in the local space of a RectTransform that is on the plane of its rectangle.
그런 의미에서 어떤 RectTransfom 내의local Position으로 되돌아간다는 뜻이라고 생각해요. 그래서 범위로서의 RectTransform 자체를 구동하는 Drag에서 계산이 이상한가요?
또는 객체의 RectTransform 이외에 계산된 값이 이상해질 수 있습니다.
부록.
소스도 드릴게요.
https://gist.github.com/OhkuboSGMS/81e409393a67d114ed24347040e8de3d
Reference
이 문제에 관하여(RectTransformUtility.Sc r e n P o i ntTolocal Point InRectangle 의), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Alt_Shift_N/items/47e310ef69a15df78628
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
http://appleorbit.hatenablog.com/entry/2015/10/23/000403
참조를 위한 Selectable, IDragHandler 추가
다음 부분은 드래그 부분입니다.
EyeStone.cs
public void OnDrag(PointerEventData eventData)
{
Vector2 localPos = Vector2.zero;
var ii =RectTransformUtility.ScreenPointToLocalPointInRectangle(
GetComponent<RectTransform>(),
eventData.position,
Camera.main,
out localPos
);
_transform.localPosition = localPos;
}
이걸로 시운전을 해보면...무지막지하다...
해결책
아래와 같이 변경한 후 정상적으로 운행한다
EyeStone.cs
public void OnDrag(PointerEventData eventData)
{
Vector2 localPos = Vector2.zero;
var ii =RectTransformUtility.ScreenPointToLocalPointInRectangle(
//親から取ってくる
transform .parent .GetComponent<RectTransform>(),
eventData.position,
Camera.main,
out localPos
);
_transform.localPosition = localPos;
}
예!
까닭
정식 문서를 다시 보니 이렇다
Transform a screen space point to a position in the local space of a RectTransform that is on the plane of its rectangle.
그런 의미에서 어떤 RectTransfom 내의local Position으로 되돌아간다는 뜻이라고 생각해요. 그래서 범위로서의 RectTransform 자체를 구동하는 Drag에서 계산이 이상한가요?
또는 객체의 RectTransform 이외에 계산된 값이 이상해질 수 있습니다.
부록.
소스도 드릴게요.
https://gist.github.com/OhkuboSGMS/81e409393a67d114ed24347040e8de3d
Reference
이 문제에 관하여(RectTransformUtility.Sc r e n P o i ntTolocal Point InRectangle 의), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Alt_Shift_N/items/47e310ef69a15df78628텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)