사용자 도구

사이트 도구


language:unity:ngui:widget-size

위젯의 크기

  • 뷰포트 좌표유니티의 기본 단위와 NGUI UIRoot 위젯이쪽은 픽셀 단위의 크기가 달라서 어디가 픽셀 단위인지 적어둔다.
UISprite spr = <NGUI Sprite Widget>.GetComponent<UISprite>();
UISpriteData spr_data = spr.GetAtlasSprite();
 
Rect inner_uv = new Rect();
inner_uv.Set(
  spr_data.x + spr_data.borderLeft,
  spr_data.y + spr_data.borderTop,
  spr_data.width - spr_data.borderLeft - spr_data.borderRight,
  spr_data.height - spr_data.borderBottom - spr_data.borderTop);
 
 
Debug.Log(
  string.Format("inner_uv{0} position{1} localPos{2} drawingDimensions{3} drawRegion{4} localScale{5} lossyScale{6}",
  inner_uv.ToString(), 
  pivot2DObj.transform.position.ToString(), // position : 유니티 뷰포트 단위
  pivot2DObj.transform.localPosition.ToString(), // 픽셀 단위
  spr.drawingDimensions.ToString(), // 위젯의 크기 (픽셀 단위)
  spr.drawRegion.ToString(), // 그릴 텍스쳐의 좌표. 텍스쳐 UV
  pivot2DObj.transform.localScale.ToString(), // 유니티의 스케일 단위. 기본 (1,1,1)
  pivot2DObj.transform.lossyScale.ToString() // 0!
));

결과

inner_uv(x:153.00, y:39.00, width:8.00, height:8.00)
position(0.0, -100.5, 0.0)
localPos(0.0, -240.0, 0.0)
drawingDimensions(-300.0, -240.0, 300.0, 240.0)
drawRegion(0.0, 0.0, 1.0, 1.0)
localScale(1.0, 1.0, 1.0)
lossyScale(0.0, 0.0, 0.0)
language/unity/ngui/widget-size.txt · 마지막으로 수정됨: 2024/04/23 22:45 저자 127.0.0.1