카테고리 없음

캔퍼스 좌표계 변환

소나무꼴 2019. 11. 7. 15:00

3D 오브젝트를 특정 UI 오프젝트 좌표로 이동

 

이동전
이동후

 

            Vector2 scrennPos = RectTransformUtility.WorldToScreenPoint(Camera.main, _imageTop.rectTransform.position);
            Vector3 pos = Vector3.zero;

            RectTransformUtility.ScreenPointToWorldPointInRectangle(_imageTop.rectTransform, scrennPos, Camera.main, out pos);
            Debug.Log(scrennPos);
            _trmSphere.position = pos;

작아진 이유는 UI가 스피어 보다 Z값이 멀어서..

 

 

3d 오브젝트의 좌표를 UI좌표로 변환해서 UI를 이동

이동전
이동후

            Vector3 pos = _trmSphere.position;
            Vector3 sphereScreenPos = Camera.main.WorldToScreenPoint(pos);
            Vector2 localPos = Vector2.zero;
            RectTransformUtility.ScreenPointToLocalPointInRectangle(_rootRect, sphereScreenPos, Camera.main, out localPos);
            _imageTop.rectTransform.anchoredPosition = localPos;

둘다 Canvas 에서 Render Mode 는 ScreenSpace - Camera 로 하고 Render Camer 도 셋팅 되어야 함