전체 글

전체 글

    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 비교

    FilterMode.Point : Point 필터링 - 텍스처 픽셀들은 뭉툭해 진다. FilterMode.Bilinear : Bilinear 필터링 - 텍스쳐 샘플들은 평범해진다 FilterMode.Bilinear :Trilinear 필터링 - 텍스쳐 샘들들은 평범해 지고 또한 mipmap 레벨사이에서 혼합된다.

    texture가 안나오고 핑크색이 되는 버그

    texture가 안나오고 핑크색이 되는 버그

    위와 같이 텍스쳐가 핑크색으로 나오는 경우가 있다.첨부된 스샷은 퍼온 사진인데, 나의 경우에는 Editor에서도 잘 보이는데 폰에만 넣으면 저렇게 특정 오브젝트가 핑크색으로 변했다.http://answers.unity3d.com/questions/778780/textures-turn-pink.html 여기에 나온것처럼 Library폴더를 삭제 후 다시 실행시키니 정상적으로 돌아왔다.

    해상도별 NGUI의 Button 위치 및 크기

    해상도별 NGUI의 Button 위치 및 크기

    OnGUI로 해상도를 찍어주는 것 외에는 스크립트가 전혀없다.오른쪽 하단의 하얀색 박스가 NGUI의 Button 오브젝트이다. 1. 갤2 800x480 2. 갤3 1280x720 3. 갤노트 10.1 1280x752 4.갤노트 2014 Edition 2560x1600 해상도 차이가 가장 큰 4.갤노트 2014 Edition을 기준으로 놓고 봤을 때NGUI는 해상도에 상관없이 픽셀크기는 그대로지만 화면크기상 상대적으로 작아진것 처럼 보이고이미지는 해상도에 따라 픽셀크기가 커졌으므로 화면크기상 상대적으로 그대로인것처럼 보인다.