레이블이 UGUI인 게시물을 표시합니다. 모든 게시물 표시
레이블이 UGUI인 게시물을 표시합니다. 모든 게시물 표시

2019년 12월 3일 화요일

Android OBB 와 TextMeshPro

APK 가 150MB를 초과해서 OBB를 도입하고 있다.
기존 로그인 씬 보다 더 앞에 OBB다운로드 체크 씬을 도입하고 APK를 빌드해서 실행하니

위와 같은 에러를 뱉어내었다.

다운로드 확인을 위한 팝업에서 TextMeshPro를 사용 중이었는데, 타 팀에서도 TextMeshPro를 OBB체크 시에는 사용하지 않는다는 얘기를 들어 TextMeshPro 대신 일반 Text 로 교체하니 일단 에러는 사라졌다.

2019년 3월 22일 금요일

TextMeshPro의 글자 가로 세로 길이

TextMeshProUGUI 의 Text 글자들의 가로 세로 길이 구하는 법

GetPreferredValues()

Function to Calculate the Preferred Width and Height of the text object.
Declaration
public Vector2 GetPreferredValues()
Returns

TypeDescription
Vector2

2018년 10월 18일 목요일

WorldToScreenPos in UGUI

개발 중인 게임의 UGUI 캔버스 모드가 Screen Space - Overlay 에서 Screen Space - Camera 로 변경되게 되었다.

별 일 없을줄 알았는데, 월드 좌표를 UI 좌표로 바꿨을때 이생해져서 열심히 구글링을 한 결과, Render Mode에 따라 변환하는 방식이 다르다는것을 알게되었다.

Overlay 모드에서는 단순히 

rectTransform.position = RectTransformUtility.WorldToScreenPoint (Camera.main, target.position);

로 해결되었지만 Camera모드에서는 좀더 복잡한 계산이 필요하다

  var pos = Vector2.zero;
  var uiCamera = Camera.main;
  var worldCamera = Camera.main;
  var canvasRect = canvas.GetComponent<RectTransform> ();

  var screenPos = RectTransformUtility.WorldToScreenPoint (worldCamera, target.position);
  RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRect, screenPos, uiCamera, out pos);
  rectTransform.localPosition = pos;


참고 링크

일본 개발자들이 정리를 참 깔끔하게 하는것 같다. 번역도 편하고.