Unity/memo

    Error building Player: Win32Exception: ApplicationName='javac.exe' 에러

    제목 그대로.유니티에서 빌드시Error building Player: Win32Exception: ApplicationName='javac.exe' ~~~라고 에러를 뱉어내는 것은 경로를 찾을 수 없기 때문에 나오는 것이다.환경변수를 통해 JAVA_HOME을 설정해 주도록 하자.자세한 방법은 http://okjsp.tistory.com/1165643255 참조.

    Temp\StaginArea\AndroidManifest.xml

    Temp\StaginArea\ 폴더를 확인해보면①AndroidManifest.xml과②AndroidManifest-main.xml 2개가 존재한다.①은 Assets\Plugins\Android\의 하위에 있는 모든 프로젝트의 AndroidManifest.xml을 종합한 파일이고②는 Assets\Plugins\Android\에만 있는 AndroidManifest.xml을 나타낸다. ①의 경우는 종합하면서 쓸데없는 태그나 내용은 알아서 삭제하며 정리해준다.

    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

    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# 파일 생성시에 적용된다.

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

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

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

    CallStatic과 CallStatic<ReturnType>

    AndroidJavaClass에는 CallStatic과 CallStatic 의 두가지 함수가 존재한다.두 함수 모두 Java Static 함수를 호출할 때 사용되는데차이점은 Return값 존재여부이다.CallStatic : Return값이 존재하는 Java Static 함수를 호출할 때 CallStatic : Return값이 존재하지 않는 Java Static 함수를 호출할 때 Return값 여부에 따른 적절한 함수를 사용하지 않으면 AndroidJavaException: java.lang.NoSuchMethodError 에러가 떨어진다.(Call 함수도 위와같은 2가지 타입이 존재하는데 테스트는 안해봤지만 마찬가지일꺼라 생각된다.)