전체 글

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

[Android] Webview Alert 표시하기

요즘 회사에서 WebView 이슈로 여러 번 앱 업데이트를 하고 있는데요. 이번 글의 주제는 WebView의 Alert가 안 나오는 이슈가 있어서 알아보게 되었습니다. 이번 글에서는 WebView의 Alert를 표시하는 방법에 대해서 소개해보려고 합니다. Alert가 안 나온다면 //문제의 코드 override fun onJsAlert( view: WebView, url: String, message: String, result: JsResult ): Boolean { return true } 저처럼 Alert가 표시되지 않는 이슈를 겪고 있으시다면 WebChromeClient의 onJsAlert 함수에서 아무 처리도 하지 않고 그냥 true를 반환하고 있는지 확인해 보세요 onJsAlert 정의를 따라..

Unity

[Unity] 2D Top Down RPG 게임 만들기 - Player Move

안녕하세요. 오늘은 키보드를 입력하면 Player가 움직이도록 만들어보겠습니다. Unity InputSystem Package 설치 Unity에서는 InputSystem는 마우스, 키보드 그리고 터치처럼 사용자의 입력을 처리할 때 사용하는 기술입니다. 그런데 2019년에 새로운 InputSystem이 발표했다고 해요. 처음 프로젝트를 생성했을 때는 기존 InputSystem이 설치되어 있고 추가적으로 PackageManager를 통해 새로운 InputSystem을 설치할 수 있다고 합니다. 새로운 InputSystem은 기존 InputSystem과 다르게 간단한 인터페이스로 모든 플랫폼을 지원할 수 있어 PC 뿐만 아니라 모바일, 조이스틱 용 게임을 모두 한 번에 대응할 수 있다고 합니다. Package..

Unity

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

안녕하세요. 오늘은 Unity Tile을 통해 배경을 만들어보려고 합니다. TileMap Object 생성 TimeMap이란 그리드 형태로 Asset을 일정하게 배치할 때 사용되는 기술입니다. 주로 게임의 배경이나 구조물을 배치할 때 사용되는 기술로 알고 있으시면 됩니다. 그리고 Tilemap Collider 2D를 통해 충돌 이벤트도 구현할 수 있습니다 배치하는 Asset 모양에 따라 크게 Hexagonal, Isometric, Rectangular 3가지 유형의 TileMap 존재합니다. mystic-wood의 Tile 모양은 Rectangular에 적합하기 때문에 Rectangular Tile Map을 생성해 주겠습니다. Tile Size 설정하기 Tile이 배치될 Cell 크기가 Player보다 ..

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..

점냥
점냥's Log