전체보기126 [ C++ ] Reference (참조) 보호되어 있는 글 입니다. 2020. 3. 3. [Unity 이론] Admob 연동 Admob 연동 광고에는 여러가지 종류가 있는데, 이 글에서 알아볼 것은 두가지입니다. 1. 배너 광고 2. 리워드 광고 0. Admob 기본 세팅 일단 유니티에 Admob 플러그인을 Import 하겠습니다. Github에서 최신버전의 Admob 플러그인을 다운받아줍니다. https://github.com/googleads/googleads-mobile-plugins/releases/latest 그리고 이 패키지를 유니티로 Import 해줍니다. (2020.02.27 기준 최신 버전 4.2.1) (참고!) Google Play Services 플러그인과 같이 사용하신다면, Admob 플러그인을 마지막에 Import 하시는 걸 추천합니다. 오류 가능성 때문... 그리고, Admob 계정이 있어야 하기에, .. 2020. 2. 29. [Unity 이론] Google + Firebase 로그인 Google + Firebase 로그인 Firebase에서 Google 회원가입 및 로그인을 하는 방법을 알아보겠습니다. Google Play Services와 Firebase를 연동시킨다고 생각하면 되겠습니다. 이번 글에서 할 것은 1. GooglePlayGamesPlugin 패키지 Import하기 => GooglePlayGames의 Services를 이용할 수 있습니다. 2. Unity에서 keystore 생성하고, SHA-1 인증서 지문 얻기 => Firebase같은 API제공업체에선 SHA-1 인증서 지문을 요청하고, 앱을 제공업체에 등록할 때 사용합니다. 3. Google Play Console에서 게임 등록하고, 게임 서비스 추가하고, OAuth 클라이언트 ID 얻기 => Google Play.. 2020. 2. 27. 해시 (Hash) - 전화번호 목록 전화번호 목록 문제 출저 - 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/42577 - 제한사항 분석 1. phone_book의 길이는 1 이상 1,000,000 이하입니다. 2. 각 전화번호의 길이는 1 이상 20 이하입니다. => 문제의 크기를 나타냅니다. - 이 문제에서 원하는 것은? phone_book의 각 요소들의 번호에 대한 수를 기록하고 저장하는 구조 !! => 이름(Key), 이름에 대한 수(Value) 로 key value 쌍을 만들어야 하는데, key가 string이고 value는 int입니다. 이렇게 정수 인덱스 말고 문자열 같은 다른 타입으로 찾아갈 수 있는 구조가 바로 해시입니다. (완주하지 못한 선수와 거의 동일합니다) .. 2020. 2. 20. 해시 (Hash) - 완주하지 못한 선수 완주하지 못한 선수 문제 출저 - 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/42576 - 제한사항 분석 1. 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. => 문제의 크기를 나타냅니다. participant의 길이가 100,000이하라는 것도 말해줍니다. 2. completion의 길이는 participant의 길이보다 1 작습니다. => 1명만 완주하지 못한 것을 알려줍니다. 3. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. => 이것 또한 문제의 크기를 나타냅니다. 4. ★★참가자 중에는 동명이인이 있을 수 있습니다. => 이 조건으로 유형이 달라집니다. 동명이인이 있을 수 있기.. 2020. 2. 20. [ C++ ] Manipulator (조정자) 보호되어 있는 글 입니다. 2020. 2. 18. 해시 (Hash) 해시 (Hash) 해시(Hash)란? - hash table이라는 저장공간 내에 key들이 어떤 위치에 있을지를 정해서, hash table 안에 값들을 저장하는 구조를 말합니다. 해시는 key value 쌍으로 이루어져 있으며, 배열과 달리 key value가 int형이 아니어도 됩니다. 만약 key value가 int형이라면 선형배열(linear array)을 이용해도 되지만, int가 아닌 string같은 다른 자료형일 경우 해시를 이용하면 좋습니다. * 사상, 매핑(mapping) - 위의 그림에서 "leo"는 2번째 칸에, "kiki"는 7번째 칸에, "eden"은 3번째 칸에 사상 또는 매핑(mapping) 되었다고 표현합니다. * hash function - hash table 안에 key들.. 2020. 2. 18. [Unity 2D] Indicator 오늘은 화면 밖에 있는 아이템, 적을 표시하는 화살표(Indicator)를 그려보겠습니다. Indicator 캐릭터가 상하좌우로 움직이면 화면에 있던 다른 오브젝트(적, 아이템 등)가 화면을 벗어납니다. 화면을 벗어난 오브젝트들을 표시해 주는 것이 바로 Indicator입니다. 0. 기본 셋팅 Main Camera를 Player의 자식으로 넣어주고 Player에게 Rigidbody2D를 추가하고 Gravity Scale을 0으로 만들어주고 Indicator Canvas의 Render Mode를 Screen Space - Camera로 바꾸고 Main Camera를 넣어줍니다. 그리고 Indicator 오브젝트는 Prefab으로 만들어 줍니다. 1. Indicator 지금부터 작성할 Indicator의 동.. 2020. 2. 17. [Unity 2D] 조이스틱을 이용한 부드러운 캐릭터 이동 조이스틱을 이용한 부드러운 캐릭터 이동 오늘은 조이스틱 조종을 통해 캐릭터가 부드럽게 회전하며 이동하는 것을 구현하도록 하겠습니다. 오늘 할 것은, 아래의 조이스틱 패드를 조종(터치 및 드래그)하여 캐릭터를 움직이는 것입니다. 제가 선택한 네모난 영역이 사용자가 터치할 영역이고, Inner Pad(안쪽 검은 원)는 사용자가 터치한 곳으로 움직일 것인데, Outer Pad(바깥 원)의 선까지만 움직이게 구현할 것입니다. 이와 동시에 조이스틱 방향으로 캐릭터가 부드럽게 회전하며 이동할 것입니다. 0. 기본 셋팅 화면비율은 9:16으로 해주었고, Character는 Sprite로, Rigidbody 2D를 추가하고 Gravity Scale을 0을 줍니다. Joystick Touch Area는 Image로, 알.. 2020. 2. 13. [Unity 이론] Firebase Auth 회원가입 및 로그인 Firebase Auth 회원가입 및 로그인 만약 게임에서 계정이 없어 게임종료 후 데이터가 날라가면 할 맛이 뚝 떨어질 것입니다. 나만의 계정을 만들어 게임점수를 쌓아가야 할 맛이 날 것입니다. 오늘은 Firebase Authentication 시스템을 이용한 회원가입 및 로그인을 구현하겠습니다. 0. 기본셋팅 우선, "Firebase Database 연동" 글에서 다운로드 받았던 Firebase Unity SDK가 있어야 합니다. 다운로드 받았던 폴더를 열고 FirebaseAuth Package를 Unity로 Import해줍니다. 그리고 Firebase에서 Authentication탭에 들어갑니다. 사용자가 어떤 방식으로 로그인을 설정할 지 정하기 위해 "로그인 방법 설정"에 들어갑니다. 또는 위쪽에.. 2019. 12. 8. [Unity 이론] Firebase Database 데이터 사용 Firebase Database 데이터 사용 저번 글에서 Firebase Database를 연동했으니 이제 Database에 존재하는 데이터를 사용해보도록 하겠습니다. 1. 데이터 입력 지난 글에서 입력했던 데이터베이스를 토대로 시작하겠습니다. 이 데이터베이스에서 추가로 "나일등"의 점수와 시간을 입력하도록 하겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 using System.Collections; using System.Collections.Generic; using UnityEngine; usin.. 2019. 11. 28. [Unity 이론] Firebase Database 연동 저번 글과 이어서 Unity에서 Database를 활용하는 방법에 대해서 공부하겠습니다. Firebase Database 연동 Google에서 서비스하는 Firebase를 활용하겠습니다. Firebase에는 데이터베이스, 사용자 관리, 인앱결제 등 게임에서 필요한 다양한 기능들을 지원해 줍니다. 물론 무료입니다. (유료 버전도 있습니다) 우선, Unity 전용 Firebase Library가 필요합니다. Firebase Unity SDK를 설치하겠습니다. (SDK: Software Development Kit. 소프트웨어 도우미) 이곳에서 다운받을 수 있습니다. Firebase Unity SDK 다운로드 다운로드를 받아줍니다. 폴더를 열어보시면 dotnet3와 dotnet4가 있습니다. Unity 버전에.. 2019. 11. 28. [Unity 이론] Firebase Database 오늘은 Unity 외, 게임제작에 필요한 시스템을 공부하겠습니다. Firebase Database Firebase는 구글에서 지원하는 서비스입니다. 클라우드 저장소, 머신러닝, 사용자 인증, 데이터베이스 등등 유용한 기능들을 제공합니다. 이 서비스를 이용하면 별도로 서버 컴퓨터를 가질 필요도 없고, 공인 IP 주소를 구매할 필요도 없고, 통신량이 많지 않다면 무료로 서비스 받을 수 있어서 모바일 게임에서 정말 많이 선택되는 도구 중 하나입니다. 그러면 오늘은 Firebase에서 Database를 간단하게 만들어보겠습니다. 우선, Firebase 홈페이지에 들어가겠습니다. 프로젝트 추가를 클릭해줍니다. 프로젝트 이름을 정해줍니다. 2단계 다음 - 3단계 Default Server를 택하고 다음 프로젝트가 .. 2019. 11. 28. [Unity 이론] Object Pooling 오늘은 게임을 효율적으로 구현할 수 있는 방법에 대해 공부하겠습니다. Object Pooling 1. Object Pooling이란? 게임에서는 엄청나게 다양하고 많은 오브젝트를이 쓰입니다. 만약 이런 오브젝트들을 생성파괴생성파괴생성파괴... 한다면 CPU성능이 나빠질 것입니다. 오브젝트를 생성할 때마다 메모리에 데이터를 할당하고, 파괴될 때마다 메모리에 데이터를 할당 해제합니다. 할당과 해제는 CPU가 담당하기 때문에 CPU 성능이 나빠질 수 밖에 없습니다. 그리고 C#에는 가비지 컬렉터가 있어 메모리에서 사용되지 않는 데이터를 할당 해제하는데, 가비지 컬렉터는 CPU가 작동시킵니다. 그럼 가비지 컬렉터가 자주 발생하면? CPU에 부담이 가게 됩니다. 이러한 점을 보완하기 위해 등장한 것이 "Objec.. 2019. 11. 26. [Unity 이론] Coroutine Coroutine 오늘은 게임을 좀 더 효율적으로 동작할 수 있게 하는 "코루틴 (Coroutine)"에 대해 공부하겠습니다. 1. Coroutine이란? Co (with) + routine (루틴) 이 합쳐진 말로, 협동루틴이라고 부를 수 있습니다. 코루틴을 사용하면 다음과 같은 특성을 가질 수 있습니다. - 다른 연산이 완료될 때까지 대기 가능 - 시간의 흐름에 따른 처리 가능 - 루틴을 병행하여 실행 가능 2. Coroutine의 사용 위의 특성을 근거로, Unity에서 다음과 같은 상황에 사용하면 좋습니다. - 특정 프레임이 아닌, 특정 시간을 대기해야 할 때 (Invoke도 있으나, 나중에 다뤄봅시다) 만약 코루틴을 사용하지 않는다면 어떤일이 있을까요?? 아래 코드를 살펴봅시다. 1 2 3 4 .. 2019. 11. 26. 이전 1 ··· 5 6 7 8 9 다음