Unity3D 에서 메일을 보낼 수 있는 기능이 있습니다. 크래쉬가 났다거나 뭐 기타 필요한 정보를 받고 싶을때 사용하면 좋을만한 기능이네요. 아래처럼 따로 클래스를 추가합니다. using UnityEngine; using System; using System.Net; using System.Net.Mail; using System.Net.Security; using System.Collections; using System.Security.Cryptography.X509Certificates; public class SendEMail { static public void Send(string mailAddress, string mailDesc) { MailMessage mail = new MailMes..
Unity3D 로 게임개발을 할 때 변수 저장이나 기억해야 될 값들을 저장할때 보통 PlayerPrefs 를 사용하는데요. 지금은 이 값이 캡슐화(?)된 파일로 따로 빌드 되도록 바뀐것 같은데 예전에는 그냥 xml 파일로 저장이 되서 아주 보안에 취약했습니다. 사실 지금은 딱히 필요가 없을지도 모르지만 그래도 보안은 중요하니. PlayerPrefs 의 값을 암호화 해서 사용하는 방법 입니다. 먼저 아래 클래스들을 임포트 해줍니다. using System; using System.Collections; using System.Security.Cryptography; 그다음 SetString 부분 입니다. public static void SetString(string key, string value, st..
[Unity3D] 런타임 중 GameObject 에 스크립트(컴포넌트) 다이나믹 하게 추가하는 방법
2015. 5. 6.
Unity3D 에서 런타임 중 GameObject 에 스크립트를 추가 하고 싶을때 사용하는 방법 입니다. 아주 간단하게 아래처럼 구현해 줍니다. public static T InitComponent (GameObject gObject) where T : MonoBehaviour { return gObject.AddComponent (); } 이걸 싱글톤이나 Static 함수로 뺀 다음에 리턴 받아서 사용하시면 됩니다.
안드로이드 버전을 빌드하고 Apk 를 공유해야 할때 보통은 드롭박스를 사용했었는데요. 구글 드라이브를 통해서도 공유를 할 수 있네요. 어쩌면 드롭박스보다 더 쉬운 것 같습니다. 먼저 구글로 가서 아래 화살표 부분의 "드라이브" 로 들어갑니다. 그다음 파일 업로드 로 Apk 파일을 업로드 해줍니다. ( 물론 구글 계정이 있어야 합니다. ) 파일을 선택하면 업로드를진행하는 과정을 보여줍니다. 업로드가 끝나면 Apk 파일을 선택한 후 화살표가 가리키는쪽의 아이콘을 눌러 줍니다. 그다음 초대하고 싶은 또는 공유하고 싶은 분의 이메일을 적어 줍니다. 적어주고 완료를 누르면 알아서 공유 메일을 보내 줍니다. 메일이 오면 안드로이드 기기에서 직접 다운로드 받으면 됩니다.
사운드를 플레이 하기위해 보통 AudioListener 를 사용하는데요. 싱글톤 매니져나 사운드 플레이 함수안에 넣어놓으면 매번 씬 ( Scene ) 이 바뀔때 마다 찾아주지 않아도 되서 조금 편리한 방법 입니다. ( 물론 같은 씬에 있다면 매번 찾아줄 필요는 없겠죠. ) 코드는 아래와 같습니다. public void GetCurrentAudioListener() { AudioListener[] listeners = GameObject.FindObjectsOfType(typeof(AudioListener)) as AudioListener[]; if (listeners != null) { for (int i = 0; i < listeners.Length; ++i) { if ( listeners[i] && ..
2D Toolkit 버전은 2.5.0 입니다. 버전이 다를 경우 아래의 설명과 다를 수 있습니다. 먼저 비트맵 폰트를 준비합니다. 비트맵 폰트 만들기 참조 http://lhh3520.tistory.com/13 그다음 Create -> tk2d -> SpriteCollection 순으로 들어가서 콜렉션을 추가해 줍니다. 콜렉션 이름을 짓고 빨간색 부분의 Open Editor... 버튼을 눌러 줍니다. 버튼을 누르면 아래같은 창이 나오는데. 여기서 빨간색 부분에 Create -> Font 를 눌러서 폰트를 추가해 줍니다. 그다음 비트맵 폰트 리소스 중에 이미지 ( .jpg, .png ) 를 아래 빨간색 부분으로 드래그 앤 드롭 해줍니다. 나머지 폰트파일 ( .fnt ) 은 아래 빨간색 부분에 드래그 앤 드롭..
[Unity3D] iOS 의 UIPickerController 를 이용해 앨범에 있는 사진 (또는 카메라로 찍은 사진) 가지고 오기
2015. 4. 14.
Unity3D 에서 게임을 만들다가 자신이 가지고 있는 앨범사진이나 카메라로 찍은 사진을 가지고 오고 싶을때 사용하는 방법 입니다. 기본적으로 Unity3D 와 iOS 간의 연동 부분을 알고 계셔야 합니다. 참조 http://lhh3520.tistory.com/208 http://lhh3520.tistory.com/88 http://lhh3520.tistory.com/81 설명하기에 앞서서 저는 기능을 설명하기 위해서 최대한 간단히 만들도록 하겠습니다. 보시고 적절히 응용해서 사용하시면 됩니다. 간단히 기능을 설명 드리자면 버튼 1개, 이미지 1개가 있고 버튼을 누르면 iOS 의 UIPickerController 를 이용해서 사진을 고르면 고른사진이 기존의 이미지를 대체하는 기능입니다. 먼저 버튼을 만들..
[Unity3D] C# 델리게이트를 사용해서 iOS 네이티브 함수 호출하기 (Plugin)
2015. 4. 13.
Unity3D 에서 iOS 의 기능을 사용하기 위해 함수를 호출하거나 또는 반대로 iOS 의 정보를 Unity3D 로 전달하기 위해 함수를 호출 하려는 경우에 사용하는 방법을 이전에 포스팅 했었는데요.. Unity3D -> iOS http://lhh3520.tistory.com/88 iOS -> Unity3D http://lhh3520.tistory.com/81 이 두가지를 따로 관리 하기 힘들때 아예 처음에 함수를 호출 할때 델리게이트를 넘겨서 결과를 받을때도 델리게이트를 통해 전달 받고 싶을때 사용하는 방법 입니다. C# 에 delegate 를 이용한 방법인데요. 먼저 아래처럼 iOS 에 선언할 함수를 C# 코드에서 정의해 줍니다. using UnityEngine; using System.Collec..
XCode 를 6.3 버전으로 업데이트하고 새로 프로젝트를 빌드해서 디바이스에 넣어 보려고 했는데 아래 처럼 Ineligible Devices 라고 나오면서 디바이스 선택이 되지 않습니다. 이전 버전에서는 잘 되다가 갑자기 자격이 없다고 나오니까 당황스럽네요..;; 정확한 이유는 모르겠지만.. 해결하는 방법은 상단메뉴에 Product -> Destination 으로 가서 테스트할 디바이스를 선택해 줍니다. 그럼 다시 디바이스가 잡히면서 잘 실행 됩니다.
Objective-C 에서 UIPickerController 나 기타 여러가지 방법으로 UIImage 를 얻을 수 있는데요. 이 UIImage 의 사이즈가 제각각이라서 하나의 사이즈로 통일 하고 싶을때 사용하는 방법 입니다. 아래처럼 코딩해 주시면 됩니다. UIImage *img = // 사이즈를 변경할 UIImage // 변경할 사이즈 float resizeWidth = 300; float resizeHeight = 300; UIGraphicsBeginImageContext(CGSizeMake(resizeWidth, resizeHeight)); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextTranslateCTM(context, 0.0,..
코드를 아래처럼 추가해 줍니다. Toast testToast = Toast.makeText(getApplicationContext(), "LVL : allow!!", Toast.LENGTH_LONG); testToast.setGravity(Gravity.CENTER, 0, 0); testToast.show(); 이렇게만 해주면 아주 간단하게 토스트를 추가 할 수 있습니다.