본문 바로가기

Game

[Unity3D] NGUI와 BMFont를 이용한 데미지(숫자) 폰트 만들기 프로젝트를 진행하다보면 NGUI의 label만으로는 표현이 뭔가 아쉬운 경우가 있다. 특히 게임 캐릭터나 유닛이 데미지를 받는다거나, 스코어를 보여준다거나 하는 상황에서 사이즈가 큰 폰트를 써야 할 경우가 많은데, 이럴 경우 기본 폰트의 크기가 작아 폰트가 지저분하게 보인다거나 게임 자체가 뭔가 허접(?)하게 보일 확률이 높다. "0부터 9까지의 숫자 부분만 따로 떼어 특별한 이미지로 만든 후에 이것을 label로 쓸 수 있다면..?" 이런 생각으로, 데미지 폰트를 만드는 방법을 검색해 보았으나... BMFont를 이용한 폰트를 만드는 방법은 여기저기 블로그 등에 널려(...) 있는데 비해, 이미지로 구성된 숫자 폰트를 만드는 방법은 의외로 찾아보기 어려웠다. 약간의 삽질 끝에 숫자 폰트를 만드는 방법을.. 더보기
[NGUI] ScrollView 만들기 리소스 준비아래의 화면 갈무리와 같이 리소스를 준비합니다. 화면에 표시될 이미지 파일들과 Label에서 사용할 폰트 파일입니다. 이 예제에서는 Label에서 사용할 폰트를 `나눔고딕`체로 사용하기 위하여 `다이나믹 폰트` 기능도 함께 사용하고 있습니다. 폰트 파일은 네이버를 통해서 다운받을 수 있습니다. 스크롤 뷰 구조 구성하기스크롤 뷰의 오브젝트 구조를 만들기 위하여 가장 먼저 NGUI의 2D UI를 준비합니다. 여기에서는 모바일 장치에 맞는 화면 크기를 기준으로 삼고 있습니다. 그래서 NGUI의 `UI Root`에 대한 `Scaling Style` 속성을 `FixedSizeOnMobiles`로 변경하고 `Manual Height`값을 800으로 설정합니다. `UI Root` 하위에 `Scroll Vi.. 더보기
[Unity3D] 데이터 Path [윈도우 에디터]Application.persistentDataPath : 사용자디렉토리/AppData/LocalLow/회사이름/프로덕트이름파일 읽기 쓰기 가능Application.dataPath : 프로젝트디렉토리/AssetsApplication.streamingAssetsPath : 프로젝트디렉토리/Assets/StreamingAssets파일 읽기 쓰기 가능 [윈도우 응용프로그램]Application.persistentDataPath : 사용자디렉토리/AppData/LocalLow/회사이름/프로덕트이름파일 읽기 쓰기 가능Application.dataPath : 실행파일/실행파일_DataApplication.streamingAssetsPath : 실행파일/실행파일_Data/StreamingAssets파.. 더보기
[Unity3D]MonoBehaviour 생명주기 유니티 Monobehaviour 의 생명주기Reset Awake OnEnable Start Fixedupdate yield WaitForFiexedUpdate Update yield null and yield WaitForSceonds LateUpdate OnWillRenderObject OnGUI yield WaitForEndOfFrame OnDisable OnDestroy 더보기
유니티에서 장면전환시 Fade in 효과 구현 유니티에서 장면전환시 Fade in 효과 구현 게임의 시작화면( Start Scene ) 이 완성되었다면 시작화면이 부드럽게 나타나도록 효과를 적용할 때 다음과 같은 방법을 사용할 수 있다 Hierarchy 뷰에 빈 게임 오브젝트를 하나 추가하고 아래의 스크립트를 포함시킨다.추가된 빈 게임 오브젝트는 시작화면이 나타날 때 Fade In 효과만 보여주고 Destroy() 에 의해 제거된다 #pragma strict var fadeTexture:Texture; // 임의의 이미지를 드래그하여 설정internal var startColor:Color = Color(0,0,0,1);internal var endColor:Color = Color(0,0,0,0);internal var currentColor:Co.. 더보기
[Unity] 유니티의 메모리 관리 유니티 문서를 보면 언급되는 Managed Memory란 단서에서 흔히 추측하기로 유니티가 알아서 모든 메모리를 잘 관리하고 있을 것 처럼 생각되지만 사실은 그렇지 않다는 것이 함정. 사실은 유니티 시스템은 메모리를 어떻게 처리할 것인가에 대한 단서를 당신이 만드는 코드내에서 제공해주기를 원한다. 따라서 잘못된 코드는 줄줄 새는 메모리로 당신의 앱을 디바이스에서 뻗어 버리게 만들것이다. 요즘은 모바일 디바이스에서 조차 64bit 시스템(iPhone 5s)가 올라가고 기본 장착 메모리가 2Gb 이상이 되는 등 모바일 앱으로서는 무한한 자원이 있는것 같지만 사실상 아직도 지구상의 대부분의 유저는 허접한 디바이스로 연명하고 있다는 것을 기억해야 한다. 유니티 어플리케이션이 사용하는 메모리 종류 유니티에서 사용.. 더보기
[Unity3d] android facebook Release Key Hash 발급. I used following steps to generate a Key Hash for my app in facebook: (I am using Mac OSX 10.8)First open a terminal (open a command prompt in windows).Navigate in the terminal to the directory where your Android debug.keystore is stored.Mostly it will located under “/Users/user_name/.android/” (In Windows will be C:\Documents and Settings\.android).Once you are in the “.android” directory, run .. 더보기
Unity and IOS push notifications *Unity and IOS push notifications IntroductionGetting Started: Brief OverviewWhat You Need for Push NotificationsAnatomy of a Push NotificationPush Notification GotchasProvisioning Profiles and Certificates.Generating the Certificate Signing RequestMaking the App ID and SSL CertificateMaking a PEM FileMaking the Provisioning ProfileStep 1: Select TypeStep 2: ConfigureStep 3: GenerateStep 4: Sel.. 더보기
Unity3D Android GCM Integration Unity3D Android GCM Integration- 1. 준비작업 구글의 푸시 기능을 사용하기 위해 구글 API 콘솔에 API 프로젝트를 만들어 Key 생성까지 해봤습니다. 이번에는 유니티3D 안드로이드 GCM(Google Cloud Messaging) 연동을 정리해보겠습니다. 1. GCM 프로젝트 생성 구글 API 콘솔에서 프로젝트를 만들고 Key를 생성합니다. 2. 안드로이드 플러그인 프로젝트 생성 유니티3D 안드로이드 플러그인 Jar 프로젝트를 생성합니다.저는 com.test.gcm 이라고 만들었습니다. GCM은 안드로이드 2.2부터 지원하므로 최소 요구 SDK를API 8로 설정해줍니다. 3. Google Cloud Messaging for Android Library 설치 및 임포트 안드로.. 더보기
Unity3D Android Plugin 만들기 1. 이클립스를 연다. 2. Android Application Project를 새로 만든다. 3. 이름과 프로젝트명을 지정하고 패키지이름을 지정한다. 4. 이제부터 다음, 다음, 다음, 다음 4연타. 5. 프로젝트 생성완료. (쉽죠?) 6. 디버그 설정을 Android Application으로 설정 7. 이제 만들어진 프로젝트명에서 마우스 우클릭후 속성을 클릭 8. "Is Library"체크하고 "Apply" 한번 눌러 준뒤 "OK" 9. 프로젝트 폴더 밑에 /bin 폴더에 보면 "Plugin.jar"파일이 생성되어 있다. (나중에 유니티에서 이녀석을 가져다 쓸거임) 10. /src/com.lingo.plugin을 클릭한 후 다시 우클릭하여 New, Class를 차례대로 클릭 11. 클래스명을 Test.. 더보기