사용자 도구

사이트 도구


language:unity:ngui:widget-size

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
language:unity:ngui:widget-size [2014/01/24 14:53] – 새로 만듦 kieunslanguage:unity:ngui:widget-size [2024/04/23 22:45] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +
 +위젯의 크기
 +
 +  * 뷰포트 좌표<sup>유니티의 기본 단위</sup>와 NGUI UIRoot 위젯<sup>이쪽은 픽셀 단위</sup>의 크기가 달라서 어디가 픽셀 단위인지 적어둔다.
 +
 +
 +<code csharp>
 +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!
 +));
 +</code>
 +
 +결과
 +
 +  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)