반응형

unity 20

유니티 AOS 빌드 시 AndroidJavaException, UnityRewardedAdCallback 오류 해결

최초 작성일 : 25.04.10수정일 : X.X.X   유니티에서는 문제가 없었지만, 테스트를 위해 안드로이드로 빌드 후 앱을 실행하니 다음과 같은 오류가 발생했다. 'AndroidJavaException: java.lang.ClassNotFoundException: com.google.unity.ads.UnityRewardedAdCallback' 관련하여 구글링을 진행하니 나와 같은 분이 있었지만 해결은 되지 않았다. 참고 1. https://tistory.wonsorang.com/795 에러 "Error Unity AndroidJavaException: java.lang.ClassNotFoundException: com.google.android.gms.ads.initialization.OnIniti..

개발/유니티 2025.04.10

Part 7-2-5. Unity 2D : MapTool

🎞 Unity 2D  지난 시간에는 새로운 레이어인 Tilemap_Collision을 새롭게 만들어주고, 갈 수 없는 영역인 'X'를 나타내는 의미로 바위를 사용하여 건물과 같은 장소에 이를 배치하였다. 이 후, 테스트 스크립트를 만들어주어 GetTile을 통해 타일 값을 가져오고 좌표(X/Y)에 타일이 배치되어있는지를 확인하는 스크립트까지 작성해보았다. 이번 시간에는 더 나아가 유니티 내 확장을 통해 MapTool을 만들고 이를 실행할 경우 자동으로 맵을 순차적으로 돌면서 타일을 검사 후, 이를 파일로 저장하는 로직을 작성해보도록 하자.  💥 MapTool  유니티에서 툴을 확장하기 위해 기본적으로 해주어야 하는 작업이 있다. 바로 'Project' 폴더 내 Editor라는 폴더를 명시해주고 해당 ..

Part 7-2-4. Unity 2D : TileMap Collision

🎞 Unity 2D  지난 시간에는 타일 맵 에디터를 이용하면서 레이어를 통해 base 영역과 Env 영역을 나누어 주는 작업을 진행하였다. 이렇게 레이어를 나누어주면 반투명한 물체를 그려주어도 base 영역의 레이어가 존재하기 때문에 자연스럽게 객체가 보여진다. 또한 이렇게 레이어를 나누게 될 경우 이번에 학습할 Collision과도 계산이 편리해지기 때문에 이를 나누어 사용한다. 따라서 이번 시간에는 Collision를 통해 갈 수 있는 영역과 갈 수 없는 영역을 구분하여 처리하는 로직에 대해서 알아보도록 하자.  💥 TileMap Collision  먼저 지난 시간에 Tilemap_base를 그대로 복사-붙여넣기 하여 사용했더니 base의 잔디들을 그대로 가져와 사용해서 base 객체를 꺼도 잔..

Part 7-2-3. Unity 2D : TileMap Layer

🎞 Unity 2D  지난 시간에는 타일 맵 에디터와 미리 다운로드 받은 에셋을 통해 각자의 맵을 자유롭게 꾸미고 만들 수 있었다. 이번 시간에는 이러한 타일 맵의 레이어의 개념을 도입해 맵끼리 서로 다른 레이어를 이용하도록 하는 방법에 대해 알아본다. 또한 이로 인한 이점이 무엇이 있고, 왜 이렇게 처리하는지 또한 알아보도록 하자. 💥 TileMap Layer  맵을 만들다보면 경우에 따라 다양한 레이어가 필요하고 이것이 유용해지는 상황이 생긴다. 타일 맵 뿐만 아니라 일반 게임에서도 UI를 Layer로 구분해서 만들면 좋은 이점이, 생각해보면 타일맵에도 그대로 적용되는 것을 알 수 있다. 예를 들어 팝업 형태로 일반 UI 위에 뜨는 항목들이 그러하다. 이는 즉, 결국 무엇을 먼저 그려줘야 하는가?..

Part 7-2-2. Unity 2D : TileMap 기초

🎞 Unity 2D  지난 시간에는 2D 환경 준비를 통해 타일 맵 에디터를 설치하고, 무료 에셋을 다운로드 받았다. 이번 시간에는 일전에 패키지 매니저에서 다운로드 받은 타일 맵 + 무료 에셋을 바탕으로 본격적으로 맵을 만들어 줄 것이다. 맵을 만드는 것이 하나하나 배치해야 하는 것이 아닌, 에디터를 이용하므로 반복적인 노가다를 하지 않아도 된다. 굿! 👍  💥 TileMap 기초  먼저 맵을 만들기 전에 2D에 대해서 간단한 이론을 살펴보도록 하자. 다운로드 받은 TinyRPGTown의 Sprites 폴더를 가보면 'rock', 즉 바위 이미지 파일이 있다. 해당 파일을 클릭해보면 'Sprite Mode'가 있다. 해당 모드는 Single, Multiple, Polygon으로 나뉘어져 있는데 각..

Part 7-2-1. Unity 2D : 2D 환경 준비

🎞 Unity 2D   지난 시간까지 Unity 2D를 시작하기에 앞서 간단한 OT와 환경 설정을 진행하였다. 이번 시간에는 새로운 씬을 만들고, Package Manager에서 Tilemap도 받아준 뒤, 무료 에셋을 받아주도록 한다.  💥 2D 환경 준비  먼저 앞으로 2D 프로젝트를 진행할 것이기에 Edit - Project Setting을 선택한다. 이 후 Editor 탭으로 들어가, Default Behaviour Mode를 3D에서 2D로 변경하여 준다. 이 후, 새로운 씬을 만들어 이를 'Game' 씬이라 명하고, 기존에 있던 씬에 덮어씌워 기존 씬은 삭제처리한다.   또한 TileMap을 사용하기 위해 Winodw - Package Manager에 들어가 All packages를 선택하..

Part 7-1-1. 개론 : OT & 환경설정

🎞 개론  지난 시간까지 웹 서버의 모든 강의를 다 듣고 학습하며 이를 정리해보았다. 이번 시간부터는 앞으로 Part 7을 학습해보는 시간을 가질 것이다.   💥 OT & 환경설정  Part 7에서는 우리가 Part 1부터 6까지 열심히 배웠던 조각들을 조립해보며 더 큰 온라인 게임을 만드는 시간을 가져볼 것이다. Part 7부터는 2D 형태의 로그라이크 장르 게임을 무료 에셋을 가지고 만들 것이며, 이를 기존의 만든 C# 게임 서버를 통해 온라인 게임으로 만들어 볼 것이다.   환경 설정은 별 다른 내용 없이, 루키스님이 미리 준비해서 업로드 해 주신 압축 파일을 바탕으로 진행 할 것이다. 따라서 이를 다운로드 받아서, 원하는 유니티 버전을 설치하여 열어주면 된다. 해당 압축 파일은, 강의 구매자에..

유니티 AOS 빌드 시 나타나는 에러 정리

최초 작성일 : 24.03.05 수정일 : X.X.X AOS를 빌드하면서 다음과 같은 에러들이 나타났는데, 이 때에 어떻게 해결했는지를 까먹지 않고 정리하기 위해 작성한다. 그래야 나중에 나도 혹시 까먹으면 참고하기 위해... 🤣 나의 해결 과정 순서 : 첫 빌드 시 에러는 1, 2, 4가 떴었으며 1을 해결하니 3, 5가 나타났다. 에러 3번 같은 경우는 내 해결범위 안을 벗어나는 것 같아 에러 5번을 해결하고자 하였으나 점점 일이 커지는 것 같았다. 따라서 상황을 전부 롤백하여 에러 4를 해결하였더니 모든 것이 완벽하게 동작하였다. 😎 에러 1. AndroidManifest 파일 내 퍼미션 에러 에러 전문 : uses-ermission#android.permission.READ_EXTERNAL_STO..

개발/유니티 2024.03.04

프리팹 Original Prefab, Prefab Variant 차이

이미 프리팹으로 만들어진 오브젝트를 가지고 다시 프리팹으로 만드려고 한다면 위와 같은 다이얼로그가 뜬다. Original Prefab 지금 자기 자신의 모습 그대로를 바탕으로 별개의 새로운 프리팹을 만든다. Prefab Variant 자기 자신을 찍어냈던 그 프리팹을 상속받는 새로운 프리팹으로서 만든다. 추후 오버라이드도 할 수 있고 새로운 기능도 덧붙일 수 있되, 기존의 프리팹 성질은 다 물려 받는 새로운 자식 프리팹을 생성하는 것과 마찬가지다.

개발/유니티 2024.01.10

[뒤끝 강의] 온라인 게임 개발 #02 - 유저 관리 기능을 이용한 로그인

뒤끝 이번 시간에는 '게임 유저 관리' 기능을 이용한 로그인을 배웁니다. 다만 학습하기 전 뒤끝에서 제공하는 함수는 크게 동기, 비동기, SendQueue로 호출할 수 있습니다. 각각에 대해서 먼저 알아보도록 하겠습니다. 🧐 동기 비동기 SendQueue 비동기 호출을 위한 처리 BackendManager 스크립트를 다음과 같이 수정합니다. using UnityEngine; using BackEnd; // 뒤끝 SDK public class BackendManager : MonoBehaviour { private void Awake() { // Update() 메소드의 Backend.AsyncPoll() 호출을 위해 오브젝트 파괴 방지 DontDestroyOnLoad(gameObject); // 뒤끝 서..

[뒤끝 강의] 온라인 게임 개발 #01 - 뒤끝 SDK 설치 및 준비

뒤끝 뒤끝 계정 생성 및 프로젝트 생성에 관한 내용은 따로 작성하지 않는다. 😜 유니티 프로젝트 생성 및 설정 유니티 허브에서 새로운 프로젝트를 생성한 뒤 뒤끝 홈페이지에서 문서 - 뒤끝 SDK를 눌러 최신 버전의 뒤끝 SDK를 다운로드 받는다. 이 후 다운로드한 패키지 파일을 유니티 프로젝트에 임포트 한 후 Unty - The Backend - Edit Setting을 눌러준다. 뒤끝 콘솔에서 생성한 프로젝트에 들어 간 후 인증 정보 탭에 들어가 Client App Id와 Signature Key를 TheBackendSettings 객체 Client App Id와 Signature Key에 넣어준다. 뒤끝 초기화 뒤끝 서버 사용을 위한 BackendManager 스크립트를 생성 후 아래와 같이 적어줍니..

[뒤끝 강의] 온라인 게임 개발 #00 - 뒤끝 소개

뒤끝이란? PC, 콘솔, 모바일 등의 다양한 플랫폼에서 온라인 게임 개발 및 운영을 위해 필요한 서버, 데이터베이스 구축을 보다 손쉽게 설정할 수 있는 서버 시스템이다. ❓ 게임 서버가 왜 필요한데? 1. 기기 변경, 초기화 등에 따른 유저 데이터를 안전하게 유지할 수 있다. 2. 푸시 메시지, 우편, 이벤트, 랭킹, 소셜 기능 활용을 통한 유저 리텐션 및 플레이타임 개선이 가능하다. 3. 게임 내 밸런스 데이터를 서버에서 관리하기 때문에 수치를 조정하기 위해 앱을 업데이트 하지 않고 뒤끝에서 게임 밸런스를 수정할 수 있다. 4. 유저 주요 지표 및 로그를 통한 이탈 구간 확인 개선 및 유저 데이터 분석 및 관리하는 기능으로 데이터 분석 관리를 할 수 있다. 5. 캐시 재화 충전 및 영수증 검증을 통한 ..

Part 3-2-1. Transform (트랜스폼), InputManager

[Scale] 오브젝트의 크기. 확대/축소 할 수 있는 기능이다. 지구와 성 등 보다 큰 모델을 필요하다고 가정하면, 모델을 만들 때 처음부터 거대한 모델을 만들 필요 없이 작게 만들어 유니티에 와서 Scale을 통해 크기를 늘리면 된다. [Position] 오브젝트의 위치. 이동과 관련되어 있는 기능이다. 거리 = 시간 * 속력 using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { [SerializeField] private float _speed = 10.0f; void Update() { if (Input.GetKey(KeyCo..

Part 3-1-1. 싱글톤

게임 매니저 👉 전역으로 선언하여 게임 전체를 관리하는 스크립트! 게임 매니저는 '컴포넌트'이므로 딱히 어떠한 오브젝트에 꼭 붙어야 하는 이유는 없지만, 모노비헤이비어를 이용하기 위해 실체는 없지만 Scene에 존재하긴 하는 빈 오브젝트를 만들어서 매니저 스크립트를 컴포넌트로서 붙이고 사용하는 것을 권장한다. 따라서 매니저 스크립트를 붙일 용도의 빈 오브젝트를 만들자. 싱글톤 게임 매니저 스크립트가 붙은 오브젝트를 가져오는 것. 현재 “@Managers” 라는 빈 오브젝트에 게임 매니저로 쓸 Managers 라는 C# 스크립트를 붙여준 상태이다. Player.cs using System.Collections; using System.Collections.Generic; using UnityEngine; ..

개발 플랫폼 변경 관련해서 질문있습니다.

Q. 혹시 유니티 개발자가 언리얼 엔진으로 갈아타신 개발자분 계실까요? 꼭 언리얼이 아니여도 콘솔이나, 안드로이드 네이티브 개발 등등... 개발 언어도 언어지만 엔진 자체나 개발환경이 많이 다를걸로 예상되는데 적응기간(?) 이라고 해야되나 기본적인 개발 및 고급 기능 사용에 얼마정도의 기한이 걸렸는지 궁금합니다. 또한 본인이 플랫폼 변경하면서 어느정도의 지식을 가지고 있었는지도 궁금합니다. 이 질문을 왜 하냐면 이직을 준비하려는데 선택폭을 좀더 넓히고 싶은 마음이 있기는한데 현재 유니티를 사용하는데에도 기본적인건 뭐 금방 배웠지만 고급 기능들 중에는 아직 사용 안해본 기능도 있고 기본적인 이론은 모르고 그냥 결과로서만 활용하는 기능들도 있어서요, 그럼 차라리 유니티에 집중하는게 좋지 않을까라는 생각이 있..

회사/게임잡 2023.08.01

유니티 gitignore 자동 생성 사이트

.gitignore란? .gitignore파일이란 Git 버전 관리 시 불필요한 파일 목록을 지정 해주는 파일이다. git으로 프로젝트를 관리할 때, 프로젝트 안의 특정 파일들은 Git으로 관리할 필요가 없는 경우가 있다. 이 떄에 .gitignore를 이용하여 불필요한 파일들을 미리 제거하여 업로드 할 수 있게 도와준다. .gitignore 생성하기 아래 링크를 통해 들어가면 자신이 사용하는 프로젝트에 맞춰 gitignore 파일을 만들어준다. https://www.toptal.com/developers/gitignore 나는 VS Code, Mac, C#을 이용하여 만들어 주었다. 이렇게 생성된 파일을 새로 생성한 깃허브 리포지토리에 우선적으로 푸시하고 커밋한다. 이 후 프로젝트 파일을 올리거나, 프..

개발/유니티 2022.09.15

유니티 디바이스 시뮬레이터 (Unity Device Simulator)

안드로이드 및 iOS 모바일 기기마다 해상도와 카메라 위치 등을 미리 시뮬레이션 해볼 수 있는 아주 좋은 기능 iOS의 경우 기기별로 다른 SafeArea가 존재하기 때문에 이에 대응해야하는 데, 핸드폰이 없을 경우 시뮬레이터를 이용하여 간접적으로 체험이 가능하다. +) 22.08.15 기준 모든 핸드폰이 있는 것은 아니며, 일부 핸드폰만 있으니 이는 설치하여 목록을 살펴보도록 하자. 설치 및 관련 정보는 아래 링크를 참조하자. https://skuld2000.tistory.com/79 [Unity] 유니티에 새로 추가되는 디바이스 시뮬레이터(Device Simulator) 소개 1. 유니티 디바이스 시뮬레이터 (Unity Device Simulator) 유니티 디바이스 시뮬레이터(Unity Device..

개발/유니티 2022.08.15
반응형