2월, 2014의 게시물 표시

UnityException: Failed assemblies stripper

이미지
유니티3D iOS 프로젝트를 빌드 중 아래와 같이 2개의 오류가 발생했습니다.


UnityException: Failed assemblies stripper: /Applications/Unity/Unity.app/Contents/Frameworks/Mono/bin/mono "/Applications/Unity/Unity.app/Contents/Frameworks/Tools/UnusedByteCodeStripper/UnusedBytecodeStripper.exe" -l none -c link -a "Assembly-CSharp-firstpass.dll" -a "Assembly-CSharp.dll" -out output -x "/Applications/Unity/Unity.app/Contents/Frameworks/Tools/UnusedByteCodeStripper/link.xml" -d "Temp/StagingArea/Data/Managed" -x "tmplink.xml" current dir : Temp/StagingArea/Data/Managed
 result file exists: False
stdout:
stderr: Unhandled Exception: Mono.Linker.ResolutionException: Can not resolve reference: System.Void System.Security.SecurityException::.ctor(System.String)  at Mono.Linker.Steps.MarkStep.MarkMethod (Mono.Cecil.MethodReference reference, System.Object markedby) [0x00000] in <filename unknown>:0   at Mono.Linker.Steps.MarkStep.MarkInstruction (Mono.Cecil.Cil.…

NGUI 3.x Tutorial Step11 - Popup List

이미지
NGUI로 간단히 3D UI를 해봤습니다. 이번에는 마지막으로 팝업 리스트 박스를 정리해보겠습니다.

 먼저 빈 게임 객체를 만든 후 라벨Sliced스프라이트를 적당히 만들고 이것들을 게임 객체의 자식으로 넣어줍니다. 아래 그림과 같이 NGUI - Attach - Popup List Script를 추가하고 Options에 적당한 값을 입력합니다. On Value Change에서 라벨의 값을 변경하기 위해 자식 Label을 바인딩 시키고 UILabel.SetCurrentSelection을 메소드로 선택합니다.


public UIPopupList testPopupList;

public void OnPopupListTest()
{
Debug.Log("OnPopupListTest " + testPopupList.value);
}

 마지막으로 UITest에 위와 같이 이벤트 핸들링을 위한 작업을 해준 후 아래 그림과 같이 UITest를 Popup List 객체에 추가 후 Test Popup List에 PopupList 객체를 바인드 합니다. On Value Change에도 바인드 시켜줍니다.



 실행하면 아래와 같이 팝업 리스트를 변경해보면 라벨과 로그가 같이 변경 출력되는 것을 확인할 수 있습니다.



 이것으로 긴? NGUI 3.x 튜토리얼을 마칠까 합니다.

NGUI 3.x Tutorial Step10 - 3D

이미지
NGUI 키보드 입력 처리를 위한 UIInput을 추가하고 이벤트 핸들링을 해봤습니다. 이번에는 3DUI를 정리해보겠습니다.

 애초에 NGUI 3D UI를 만들었으면 바로 확인이 가능한데 사실 지금껏 작업했던 2D 베이트 UI에서 카메라의 인스펙터 설정 몇개만 수정하면 3D UI로 변경할 수 있습니다.

 먼저 NGUI - Create - Panel 을 선택해 패널 객체를 하나 만들고 아래와 같이 기존에 작업했던 객체들을 자식으로 붙여줍니다.



 다음으로 카메라 객체의 인스펙터 중 Projection을 Perspective로 바꿔서 3D 뷰로 설정해주고 Z 좌표와 Clipping Planes를 적절히 수정합니다.



 NGUI에 이미 포함된 샘플에는 PanWithMouse라는 컴포넌트를 추가하던데 이건 샘플 폴더에 추가되어 있는 컴포넌트라 일단 제외 했습니다. 추가하면 마우스 움직임에 따라 Panel 객체가 움직이긴 하네요. 결과는 아래와 같습니다.



 다음에는 마지막 튜토리얼로 NGUI 팝업 리스트 처리를 정리해보겠습니다.

참고

NGUI Tutorial Step 10: 3D

NGUI 3.x Tutorial Step9 - Input

이미지
NGUI 체크박스 처리 컴포넌트인 Toggle을 추가하고 이벤트 핸들링을 해봤습니다. 이번에는 키보드 입력을 받는 Input 처리를 정리해보겠습니다.

 Input이라고 빈 게임 객체를 만들고 하위 자식으로 라벨스프라이트를 만들어 적당히 설정합니다. 그리고 UITest 컴포넌트에는 아래와 같이 UIInput 변수와 이벤트 핸들링시 로그를 출력하는 함수를 추가합니다.


public class UITest : MonoBehaviour {
...
public UIInput inputTest;

        public void OnInputTest()
{
Debug.Log("OnInputTest " + inputTest.value);
}
}


 Input 게임 객체에 입력 처리를 위해 NGUI - Attach - Input Field Script를 추가합니다. 역시나 터치 이벤트 반응을 위해 Box Collider을 추가하고 UITest 컴포넌트도 추가합니다. 아래 그림과 같이 On Submit에 UITest를 바인드하고 Method로 OnInputTest를 선택합니다. UITest의 Input Test 에는 Input 객체를 바인드 시킵니다.



 이제 실행하면 인풋 필드에 아래와 같이 입력할 수 있습니다. 한글 입력을 하려면 라벨 튜토리얼에서 처리했던 것처럼 한글 폰트를 사용해서 Dynamic으로 해주면 됩니다.



 다음에는 NGUI 3D UI에 대해 정리해보겠습니다.

참고

NGUI Tutorial Step 9: Input

NGUI 3.x Tutorial Step8 - Toggle

이미지
NGUI 슬라이더를 추가하고 이벤트 핸들링을 해봤습니다. 이번에는 체크박스인 Toggle 처리를 해보겠습니다. 역시나 기존에 작업된 슬라이더는 삭제하고 기타 타이틀바등의 라벨도 튜토리얼8에 맞게 변경 후 진행합니다.

 먼저 Sprites라는 빈 게임 오브젝트를 만들고 지금까지 만들었던 각 R, G, B 스프라이트들을 Sprites에 드래그&드롭해서 자식으로 만듭니다. 역시나 Sprites 오브젝트를 토글하기 위한 Checkbox - RGB Sprites라는 빈 오브젝트를 만들고 자식들로 라벨과, Sliced스프라이트, 스프라이트를 적당히 만들어줍니다. 그러면 계층창은 아래와 같습니다.



 이전 튜토리얼에서 만들었던 UITest 컴포넌트에 아래와 같이 Checkbox - RGB Sprites에 반인드 될 UIToggle 변수를 추가하고 이벤트 핸들링 처리를 위해 함수를 하나 추가합니다.


public class UITest : MonoBehaviour {

public UIToggle testRGBSpritesToggle;

        public void OnRGBSpritesToglle()
{
Debug.Log("OnRGBSpritesToglle " + testRGBSpritesToggle.value);
}
}


 마지막으로 Cechkbox - RGB Sprites에 터치 충돌 처리를 위해 NGUI - Attach - Collider를 추가하고 마찬가지로 체크박스 처리를 위해 Toggle Script와 Toggled Objects, UITest를 추가해줍니다. Toggle Objects는 Add Component - NGUI - Interaction에 있습니다.

 UIToggled Objects의 Activate Size를 1로 하고 Element에 체크박스가 토글될 때 연동될 게임 오브젝트를 바인딩 해줍니다. 여기서는 제일 처음에 스프라이트 3개를 합친 Sprites 오브젝트를 드래그&드롭 해줬습니다.

 토글 이벤트 핸들링을 위해 UI…