[출처]
2. http://moure95.egloos.com/961500
3. http://blueasa.tistory.com/918
[픽셀 사이즈로 Plane Scale 계산 하는 방법 ]
현재 3D 카메라에서의 오브젝트 스크린 width, height 를 구하고,
이미지와의 비율에 맞게 스케일링한다.
_savedMesh : Plane 의 메시
Vector3 vWorld1 = p_obj.transform.TransformPoint(_savedMesh.vertices[0]); _savedMesh.uv.Length - 1]); p_obj.transform.localScale.y * rateY, p_obj.transform.localScale.z);
|
비율로 설정하여 개발하시고 후에 빌드할 때, 해상도 비율에 맞춰 화면에 딱 맞게 보이도록 하고 있습니다.
예를 들어, 2:3 비율로 개발 후에 빌드시, SetResolution(Screen.width, Screen.width/2*3, true)라고하시면 됩니다. (※ SetResolution 메서드가 안 먹는 단말기도 있다.)
(※ Unity3D 4.0 이하 버전에서는 SetResolution 메서드가 동작하지 않는다.)
[NGUI 해상도에 맞게 UI Scale]
1) NGUI의 Panel에 UIStretch 추가
(조절이 필요한 곳에 모두 넣는다. 패널이 여러개면 여러 패널에 모두 순서대로 진행)
2) Ui Camera에 NGUI 카메라 추가(Drag & Drop)
3) Style : Both(카메라에 맞춰서 스케일이 조절돼버림. 스케일 수정 안됨)
4) 스케일이 직접 조절이 안되므로 Relative Size를 조절함
5) Relative Size 조절(결과적으로 패널의 스케일 값이 1이 나오게 Relative Size 값을 넣는다.)
X = 패널의 1 / Scale.X
Y = 패널의 1 / Scale.Y
<문제점>
- 해상도에 맞게 늘어나긴 하지만 UI 크기가 늘어나거나 줄어드는 문제가 있음.
※ EZGUI는 ezgui + sm2 를 구입해서 pixel perfect 사용!
[참조 글]
저도 같은 문제로 게시판 뒤지다가 어떤분것 보고 도움을 받았는데요. NGUI 쓰신다면 NGUI 에 있는 스크립트를 사용하시면 됩니다.
UIStretch 스크립트를사용해서 해상도에따라 셋팅값에 따라 해상도에 맞춰 비율적으로 강제적으로 늘릴 수 있습니다.
예를 들자면 UIStretch를 패널에 추가하시고, UI Camera에 NGUI 카메라를 넣으시고, Style을 Both로 맞추시면 카메라에 맞춰 늘어나게 되는데요.
여기서 크기를 Relative Size로 셋팅해주시면 됩니다. 저같은 경우는 엄청나게 커져버려서 X = 0.00085 Y = 0.00125 뭐 이런식으로 맞췄습니다.
참조글 링크 : http://devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=23789&page=0&sca=UNITY&sfl=wr_subject%7C%7Cwr_content&stx=UIStretch&spt=0&page=0¤tId=44#c_23991
'IT_Games > Unity3D' 카테고리의 다른 글
Unity3D yield 사용법! (0) | 2013.06.27 |
---|---|
[unity3d][C#] 효과적인 C# 메모리 관리 기법 (0) | 2013.06.24 |
[펌] Unity3D 를 활용한 3D 컨텐츠 개발 (0) | 2013.06.20 |
[펌] 46 Tips & Tricks for 2D mobile Performance in Unity. (0) | 2013.06.20 |
[펌] Unity3D 모바일 디바이스에서 파일생성 및 읽고 쓰기 (0) | 2013.06.20 |