전체 글

Android 및 취미 활동을 공유하는 블로그입니다!!
Unity

[Unity] 2D Top Down RPG 게임 만들기 - Camera 설정하기

안녕하세요. 오늘은 Unity 게임 개발을 본격적으로 시작하기 전 Camera 설정을 짧게 하려고 합니다. 이전에 만든 Player Prefabs를 Scean에 배치하고 Game 속에서 보게 되면 너무나도 작게 보이는 것을 확인할 수 있습니다. 캐릭터가 게임에서 잘 인지될 수 있도록 크기를 조절해야겠죠? 캐릭터의 크기를 늘리는 방법도 있겠지만 저희는 카메라 설정으로 변경해 보겠습니다 Camera OrthographicSize Camera의 Inspector를 보면 Size 속성을 찾아 카메라의 크기를 줄일 수 있습니다. Size 속성은 orthographic projection의 Size 속성인데요. 그래서 만약 Size 속성을 찾을 수 없다면 Camera의 Projection 속성을 orthograph..

Unity

[Unity] 2D Top Down RPG 게임 만들기 - Player Prefabs 생성

안녕하세요. 이번 포스팅에서는 Unity의 prefabs를 만들어보려고 합니다. Prefabs란? Prefabs는 GameObject를 생성 및 설정을 저장할 수 있기 때문에 재활용 가능한 GameObject를 생성할 때 사용하는 기술입니다. Prefabs에서 생성된 GameObject는 Prefabs에 저장되어 있는 정보들을 동일하게 들고 있고 개별적으로 값을 변경할 수도 있습니다. 그리고 런타임에서 GameObject를 생성하고 싶을 때도 Prefabs를 사용합니다. 자세한 예시를 알아볼까요? - 산속 배경일 때 반복적으로 심는 '나무'들 - 총 게임에서 총을 쏠 때마다 생성되는 '총알'을 만들 때 - 주변에서 랜덤으로 생성되는 '몬스터' Player Prefabs 생성하기 Prefabs 생성 방법은..

Unity

[Unity] 2D Top Down RPG 게임 만들기 - Asset 추가 및 설정

안녕하세요. 이번 포스팅에서는 본격적으로 게임을 만들기 전에 Asset을 추가하는 방법에 대해 정리하고자 합니다. Asset Asset이란 Unity에서 게임에 사용될 수 있는 아이템을 의미합니다. 배경 이미지 또는 타일 파일, 애니메이션 파일, 효과음 파일 등이 해당됩니다. 외부에서 import 하지 않고 Unity에서 생성할 수 있는 오디오 믹서나 랜더 텍스처 그래픽 등도 해당한다고 해요 게임은 순수 코딩으로만으로 개발할 수 없는 영역인 것 같습니다. 매력 있는 캐릭터와 몰입도 있는 그래픽, 타격감 있는 효과음처럼 Asset은 게임 개발에 필수 요소라고 할 수 있습니다. Asset 어떻게 Unity에 추가할 수 있을까요? Asset 다운로드하기 저는 Mystic Woods라는 프로젝트의 무료 Asss..

Unity

[Unity] 2D Top Down RPG 게임 만들기 - Unity 설치

안녕하세요 점냥입니다. 앞으로 Unity를 2D Top Down RPG Tutorial을 따라가면서 배운 내용들을 블로그에 정리할 예정입니다. 게임 개발은 대학교 때 수업으로 처음 경험했었는데요. 당시 다른 수업 과목보다 게임 개발 수업을 좋아했고 과제에도 밤새 몰두하면서 공부했던 기억이 있어요. 그 정도로 재밌었지만 지금은 Android 개발자로 일하고 있는데요. 최근 운 좋게도 회사에서 사이드 프로젝트 느낌으로 게임 개발을 진행하게 되어서 멀리하던 Unity를 다시 들여보게 되었습니다. 지금 굉장히 설레고 재밌어요! Unity editor: 2022.3.10f1 Tutorial Youtube Link: https://www.youtube.com/watch?v=7iYWpzL9GkM Unity 설치 유니..

Android/Common

[Android] 앱 성능 개선 - 앱 시작 시간

안녕하세요. 이번 글에서는 '앱 시작 시간'에 대해서 알아보려고 합니다. 앱 시작 시간은 앱 성능 지표 중 하나인데요. 최근 면접에서 앱 시작 시간에 대한 질문에 대답을 못했어요 하하,, 이번 기회에 한번 같이 알아보면 좋을 것 같죠? 앱 시작 시간이란? 앱 시작 시간은 Android 성능 지표 중 하나로 앱을 로드하는 시간을 의미해요. 구글에서는 사용자의 경험을 위해 앱 시작 시간을 개선하라고 적극 권장하고 있는데요. Google Photo 앱에 시작 시간을 35 퍼 빠르도록 개선했다는 발표도 있었습니다 앱 시작 시간 유형 구글은 앱이 실행되기 전 상태에 따라서 앱 시작 시간 유형을 구분했습니다. Cold Start Cold Start는 앱이 처음부터 시작하는 것을 의미합니다. 기기가 부팅되고 맨 처음..

Android/Common

[Android] minSdk, compileSdk, targetSdk

android { ... compileSdk 33 defaultConfig { minSdkVersion 23 targetSdkVersion 33 } } 최근 minSdk, compileSdk, targetSdk 각 의미에 대해서 물어보는 질문에서 minSdk은 쉽게 대답했지만 compileSdk와 targetSdk의 차이점을 설명하지 못했던 슬픈 경험이 있어 이번 글을 준비하게 되었습니다. 이 글을 보시는 취준생분들이나 면접을 대비하시는 분들은 꼭 대답하실 수 있으면 좋겠네요 Android API Level 이번 블로그에서 알아보는 minSdk, compileSdk, targetSdk 속성의 값으로 Android API Level이 사용됩니다. 그래서 우선 Android API Level에 대해서 알아볼..

Android/WebView

[Android] WebView로 파일을 업로드하는 방법

안녕하세요 이번 글은 Android WebView에서 파일을 업로드하는 방법에 대해서 소개해보려고 합니다. 이번 주제는 Android WebView는 별도 처리 없이는 웹 사이트의 파일 업로드 기능을 사용할 수 없기 때문입니다. 문제 상황 @SuppressLint("SetJavaScriptEnabled") @Composable fun UploadWebViewScreen() { // File Upload HTML을 사용 val state = rememberWebViewStateWithHTMLData( """ Click on the "Choose File" button to upload a file: """.trimIndent() ) val context = LocalContext.current WebVie..

Android/WebView

[Android] WebView Exception 처리하기

안녕하세요. 오늘은 WebView를 구현한 앱에서 발생하는 이상한 오류에 대해 알아보고 어떻게 해결해야 하는지 짧게 알아보려고 합니다. WebView Crash? 최근 앱에서 PlayStore에 알 수 없는 Crash 제보가 수십 건 올라오기 시작했습니다. 위 사진이 제보되던 Crash의 스택 트레이스입니다. 처음에는 생소한 단어들과 처음 보는 클래스 이름 때문에 원인을 특정하기 어려웠으나 곧 WebView 내부에서 발생하는 Crash라는 것을 알게 되었습니다. WebView Crash 재현하기 위 오류는 WebView Render Process 과정에서 발생한 Crash입니다. 오류를 하기 위해서는 재현 경로를 알아야 하는데요. 다행히도 Rendenr Process에서 Crash가 발생하도록 하는 재현..

Android/WebView

[Android] WebView에서 유투브 전체 화면을 올바르게 표시하는 방법

안녕하세요 점냥입니다 :) 요즘 특정 화면을 WebView로 대체하는 경우가 종종 생기고 있어요. 실제로 앱 개발자의 역할은 대부분 올바른 URL을 설정해 주고 간단한 기본 설정을 해주면 됩니다. 그런데 만약 WebView에서 유튜브 영상 또는 비디오를 보여주고 싶다면 추가적으로 앱 개발자가 해줘야 하는 설정이 있어요. 한번 알아보러 가실까요? 문제 상황 @SuppressLint("SetJavaScriptEnabled") @Composable fun YouTubeInWebViewScreen() { val state = rememberWebViewState("https://www.youtube.com/embed/OK986vgCMs8") WebView( state = state, modifier = Modi..

Android/Gradle

[Android] Gradle 버전 카탈로그를 사용해 버전 관리하기

안녕하세요. 오늘은 Gradle 버전 카탈로그에 대해 간단히 알아보려고 합니다! Gradle 버전 카탈로그는? Gradle 버전 카탈로그는 멀티 모듈 프로젝트에서 의존성을 쉽게 공유하고 쉽게 관리할 수 있는 Gradle의 기능 중 하나입니다. 사실 최근에 추가된 기능은 아니고 Gradle 7부터 지원을 시작했다고 해요. extesion이나 buildSrc를 통해 의존성 버전을 관리해 오다가 최근 nowInAndroid에서 버전 카탈로그를 사용하는 것을 보고 관심이 생겨 알아보게 되었습니다 사용 방법 버전 카탈로그는 Gradle 파일에서 versionCatalog 함수에서 library, plugin 등 을 직접 정의해서 사용할 수 있지만, 제가 찾아보았던 대부분 Android 예제에서는 toml 파일을 ..

점냥
점냥's Log