전체 글
NGUI 컴포넌트를 쓰는 게임오브젝트의 Layer
NGUI컴포넌트가 add되어있는 게임오브젝트의 Layer는 무조건 UIRoot컴포넌트가 붙어있는 게임오브젝트가 속한 Layer로 자동지정된다. UIRoot - 레이어 defaultParentObject - 빈 게임오브젝트ㄴChildObject1 - UIButtonㄴChildObject2 - UIButton UIRoot가 default 레이어로 설정되어있다면 ParentObject는 NGUI 컴포넌트를 붙이지 않았으므로 Layer를 맘대로 바꿀 수 있는데, ChildObject1,2 같은 경우에는 NGUI컴포넌트이기 때문에 Layer를 아무리 바꾸려해도 프리팹을 apply혹은 씬을 save하면 UIRoot의 default 레이어로 자동 변경된다.
activeSelf와 activeInHierarchy
A.activeSelf : A.SetActive(bool)에 영향을 받는다.A.activeInHierarchy : A.SetActive(bool)에 따라 변하며, 또한 A의 부모가 있다면 부모의 SetActive(bool)에 영향을 받는다. 자신보다 부모상태를 먼저 따른다.부모가 SetActive(false)가 되면 자식은 activeSelf == true 더라도 activeInHierarchy == false가 되면서 OnDisable가 호출된다. 물론, Update나 OnGUI등은 동작하지 않는다. 참고 : http://docs.unity3d.com/Manual/UpgradeGuide3540.html
원하는 Define에서만 Debug.Log 출력하기
Debug.Log는 클래스명만 Debug일 뿐, 실제 서비스를 출시할 때도 삭제하지 않는 이상 살아있다.너무나 많은 Debug.Log들을 일일히 찾아 삭제할 수도 없고,이럴 때는 c#의 Conditional Attribute 기능을 이용하면 define에 따라 무시할 수 있다. 첨부된 파일을 Assets/Plugins 폴더에 넣는다.그리고 파일을 열어보면 Conditional Attribute에 Debug 로그가 출력될 Define을 지정해준다.해당 Define이 아니면 컴파일러에서 Debug를 무시하고 출력하지 않게 해준다. 추가적으로 Log함수안에 원하는대로 커스터마이징해서 Debug.Log를 활용할 수 있다. 참고 : https://gist.github.com/kimsama/4123043
Perforce 업로드시 바인딩이 깨질 때
프로젝트를 Perforce에 올린 후, 다른 곳에서 받아서 실행해보면 바인딩이 모두 깨져있다.(파일로 전달해도 바인딩이 깨져있지 않다)원인은 Meta파일에 있다.Edit-Project Settings-Editor에 Version Control이 Perforce로 되어있어야 Perforce에 맞는 Meta파일이생성되는데Hidden Meta Files로 되어있었기 때문에 Perforce에 올리는 순간 바인딩이 깨지는 것이다.
유니티에서 c# 파일 생성시 원하는 폼으로 생성하기
c:\Program Files (x86)\Unity\Editor\Data\Resources\ScriptTemplates\ 폴더 접근한다.폴더에 들어가면 각 언어별 기본 세팅 파일이 있다.원하는 기본 폼으로 설정하면 유니티에서 c# 파일 생성시에 적용된다.
FilterMode 비교
FilterMode.Point : Point 필터링 - 텍스처 픽셀들은 뭉툭해 진다. FilterMode.Bilinear : Bilinear 필터링 - 텍스쳐 샘플들은 평범해진다 FilterMode.Bilinear :Trilinear 필터링 - 텍스쳐 샘들들은 평범해 지고 또한 mipmap 레벨사이에서 혼합된다.
texture가 안나오고 핑크색이 되는 버그
위와 같이 텍스쳐가 핑크색으로 나오는 경우가 있다.첨부된 스샷은 퍼온 사진인데, 나의 경우에는 Editor에서도 잘 보이는데 폰에만 넣으면 저렇게 특정 오브젝트가 핑크색으로 변했다.http://answers.unity3d.com/questions/778780/textures-turn-pink.html 여기에 나온것처럼 Library폴더를 삭제 후 다시 실행시키니 정상적으로 돌아왔다.
해상도별 NGUI의 Button 위치 및 크기
OnGUI로 해상도를 찍어주는 것 외에는 스크립트가 전혀없다.오른쪽 하단의 하얀색 박스가 NGUI의 Button 오브젝트이다. 1. 갤2 800x480 2. 갤3 1280x720 3. 갤노트 10.1 1280x752 4.갤노트 2014 Edition 2560x1600 해상도 차이가 가장 큰 4.갤노트 2014 Edition을 기준으로 놓고 봤을 때NGUI는 해상도에 상관없이 픽셀크기는 그대로지만 화면크기상 상대적으로 작아진것 처럼 보이고이미지는 해상도에 따라 픽셀크기가 커졌으므로 화면크기상 상대적으로 그대로인것처럼 보인다.