SideProjects/DuolingoClone 35

[듀오링고 클론 코딩 with Unity] 스크립트 생성

유니티에서 지원하는 대표적이고 많이 쓰이는 프로그래밍 언어는 C# 입니다.프로그래밍을 조금이라도 공부해 보셨다면 Microsoft에서 개발하고 적극 지원하는 언어라는 것을 알고 계실 겁니다. 이제 본격적으로 프로그래밍을 해볼텐데요.먼저 스크립트 파일을 생성해야겠죠. Project 창에서 Scripts 폴더로 이동한 뒤, 오른쪽 마우스 클릭을 합니다.그러면 메뉴가 열리는데요.Create => C# Script를 선택해서 스크립트 파일을 생성할 수 있습니다.Scripts 폴더에 스크립트가 생성되고 이름을 지정할 수 있습니다.GameManager 라는 이름으로 변경합니다.생성된 파일을 윈도우 탐색기에서도 확인해 보겠습니다.Project 창 안에서 오른쪽 마우스 클릭을 하면 메뉴가 열리는데, 그 중 Show i..

[듀오링고 클론 코딩 with Unity] FPS (Frame Per Second)

유니티는 게임 엔진으로 시작했습니다.게임은 1초당 몇개의 프레임을 그릴 수 있느냐가 매우 중요합니다.FPS 많이 들어보셨을 것입니다.1인칭 슈팅 게임은 아니고, Frame Per Second의 약자입니다. 그래서 보통은 게임에서 60 FPS를 유지해서 그보다 떨어지지 않도록 개발해야 합니다.유저 입장에서 게임이 끊겨 보일 수 있기 때문입니다.초당 60 프레임을 유지하기 위해서는 PC의 경우, CPU, GPU(그래픽카드)의 성능이 최대한 발휘되어야 합니다. 게임에서는 보통 아래와 같이 설정하면 좋습니다.모바일의 경우, 발열과 배터리 소모 이슈가 있을 수 있기  때문에 수치는 달라질 수도 있습니다.QualitySettings.vSyncCount = 0;Application.targetFrameRate = 6..

[듀오링고 클론 코딩 with Unity] Input Field와 문자열

Canvas => UI => Input Field 로 텍스트 입력 박스를 생성해 보겠습니다.Input Field가 생성되었습니다.Game 창에 화면 중앙에 흰색을 텍스트 입력 박스가 생성된 것을 확인할 수 있습니다. 폰트를 나눔고딕으로 변경하고 폰트 크기도 적절하게 크게 설정합니다.InputField의 크기를 키워서 입력한 텍스트가 잘 보이도록 합니다.아래 화면과 같이 Width, Height를 적절히 늘려줍니다. 그리고 InputField의 하위에 있는 Text 의 Font Size를 변경합니다.실제로 텍스트 입력 상자에 글자를 입력하면 보이는 텍스트의 크기입니다. 이제 게임을 실행하고 흰색의 InputField에 문자열을 입력해 봅니다.여기서 말하는 문자열이란 글자 하나하나가 모인 string 이라고..

[듀오링고 클론 코딩 with Unity] 안드로이드에서 실행

먼저 안드로이드 기기(스마트폰 / 태블릿)에 개발자 옵션이 활성화 되어 있는지 확인합니다.만약 개발자 옵션이 보이지 않는다면, 개발자 옵션을 켜는 방법을 검색해 보시기 바랍니다.그리고 USB 디버깅이 활성화 되어 있어야 합니다.이번에는 Build Settins 창에서 Build And Run 버튼을 클릭합니다.빌드를 시작합니다.빌드 도중 아래와 같은 에러가 발생할 수 있습니다.

[듀오링고 클론 코딩 with Unity] 안드로이드 apk 빌드

이제 안드로이드 스마트폰이나 태블릿에서 잘 돌아가는지 확인해 볼 시간입니다.유니티 에디터에서는 정상 실행되는 것을 봤으니 실제로는 어떤지 봐야겠지요?File 메뉴의 Build Settings 를 클릭합니다.그러면 Build Settings 창이 열립니다.default로는 PC, Mac & Linux Standalone으로 선택되어 있습니다.Android를 선택하고 Switch Platform 버튼을 클릭합니다. 빌드할 씬을 선택하려면 기존에 있는던 SampleScene 씬을 Del 키로 삭제합니다.삭제할 씬을 선택하고 오른쪽 클릭을 하고 Remove Selection으로 삭제할 수도 있습니다.그리고 Add Open Scenes를 클릭해서 현재 씬인 InGameTest를 빌드할 씬으로 추가합니다.하단에 B..

[듀오링고 클론 코딩 with Unity] 나눔 글꼴 폰트 추가

Hello, world! 를 출력하는 것까지는 해봤지만, 기본 폰트 Arial이라서 이쁘지가 않습니다.클라이언트 / 프론트엔드 개발자라면 역시 이쁜게 최고겠지요?어렵지 않으니 쉬어가는 페이지라고 생각하고 따라와 주세요. 그럼 네이버에서 제공하는 나눔폰트를 유니티 프로젝트에 추가해 보겠습니다.네이버 글꼴 모음 (naver.com) 네이버 글꼴 모음네이버가 만든 150여종의 글꼴을 한번에 만나보세요hangeul.naver.com 아래로 스크롤 해보면 폰트를 다운로드 받을 수 있습니다.나눔 글꼴 전체 내려받기 버튼을 클릭합니다. 압축을 풀고 나눔고딕 => NanumFontSetup_TTF_GOTHIC 폴더로 이동 후, ttf 파일을 유니티 Project 창으로 드래그 앤 드랍합니다.그러면 아래 화면과 같이 4..

[듀오링고 클론 코딩 with Unity] Text로 Hello, world!

그럼 이전 시간에 테스트 용도로 생성한 GameObject 를 삭제해 보겠습니다.Hierarchy는 항상 정리된 상태로 관리하는 것이 좋습니다.GameObject를 클릭하고, 오른쪽 마우스 클릭을 하면 Delete라는 메뉴가 있습니다.또는 단축키로 Del 키를 누르면 삭제 가능합니다.InGameTest 라는 씬은 변경사항이 있었기 때문에 아래와 같이 * 가 오른쪽에 표시됩니다.이 씬을 저장할 필요가 있으므로 Ctrl + S 로 씬 저장을 합니다.유니티 에디터 상단의 File => Save 메뉴로도 가능합니다.Canvas를 클릭하고 UI => Text로 Text를 생성해 봅니다.꼭 Canvas를 클릭한 다음에 Text를 생성해야 합니다.왜냐하면 Canvas의 하위 또는 자식 게임오브젝트여야 하기 때문입니다..

[듀오링고 클론 코딩 with Unity] UI Canvas와 게임 오브젝트

이번에는 본격적으로 게임에 UI를 추가해 보겠습니다.Text나 Image와 같은 UI 요소들을 추가하기 위해서는, Hierarchy 상에 최상단에 Canvas가 존재해야 합니다.Canvas는 말 그대로 캔버스로 UI를 그릴 수 있는 공간이라고 보면 되겠습니다.Hierarchy에서 오른쪽 마우스 클릭을 하면 메뉴가 열립니다.메뉴를 따라가다 보면 여러 창이 뜰 수 있습니다.GameObject => UI => Canvas를 클릭합니다.그러면 아래 화면과 같이 Hierarchy에 Canvas 게임오브젝트가 생성됩니다.유니티에서는 모든 요소들을 기본적으로 Game Object(게임 오브젝트)라고 부릅니다.따라서 Canvas 또한 게임 오브젝트에 속합니다.또한 Canvas는 아래 화면과 같이 여러 Component..

[듀오링고 클론 코딩 with Unity] 새로운 테스트 씬 생성과 저장

이제 새로운 Scene (화면)을 생성해 보도록 하겠습니다.유니티 에디터 상단 메뉴에서 File을 클릭하면 아래 화면과 같이 메뉴가 열립니다.New Scene 으로 새로운 씬을 생성합니다.또는 단축키 Ctrl+N 을 누르면 새로운 씬이 생성됩니다.저의 개발 환경은 MacOS가 아니고, 많이 쓰이는 Windows 11이기 때문에 윈도우를 기준으로 설명드립니다.그러면 New Scene 윈도우가 열립니다.유니티 구버전에서는 바로 Empty 씬이 열렸는데, 이제 2D, 3D 템플릿을 선택해서 쓸 숫 있게 되었습니다.유니티는 버전 업 속도도 빠르고 좋은 기능들이 지속적으로 추가되고 있습니다.템플릿이란, 틀이라고 보시면 되겠습니다.여러 종류의 템플릿이 존재하고, 이 템플릿으로 다른 종류의 씬을 새롭게 생성할 수 있..

[듀오링고 클론 코딩 with Unity] 폴더 생성

Project 창은 실제 파일 탐색기에 물리적으로 존재하는 폴더와 파일들을 보여준다고 했습니다.아래와 같이 Assets 폴더 안에 여러가지 폴더들을 생성합니다.폴더 크기가 너무 커보이기 때문에 줄여보겠습니다.Project 창의 우측하단에 슬라이드 바가 있는데 이것을 왼쪽으로 이동시켜 봅니다.그러면 아래와 같이 폴더의 크기가 작게 보입니다.여러 개의 파일들을 다루어야 하기 때문에 아이콘의 크기가 작은 것이 좋겠습니다. 가장 중요한 것은 어떤 폴더를 생성하느냐 입니다.위에서부터 아래로 순서대로 설명 드리겠습니다.Animations : 애니메이션 파일 (에셋이라고도 부릅니다. 모든 리소스 파일들은 에셋이라고 명시하도록 하겠습니다.)Audio : 효과음, 배경음, 음성 등 사운드 에셋입니다.Editor : 유니..