영단어를 공부하면서 한글 파일에 단어를 적어놓고 가리면서 외우다 보니 매번 가리기도 불편하고, 단어가 항상 똑같은 순서로 쓰여 있어 순서가 외워지는 느낌을 많이 받았다. 그래서 단어를 무작위로 추출해서 문제로 내주는 프로그램을 간단하게 작성해 보았다. 프로그램의 알고리즘은 본인의 암기 방식을 본따 만들었다. 매일 한 번씩 단어장에 적힌 단어 전체를 하나씩 보며 뜻을 생각하고, 뜻이 생각나는 단어는 횟수를 체크한다. 3일 연속 뜻을 맞춘 단어는 따로 기록해둔 다음 매 일요일에 해당 단어들을 확인한다. 단어가 일요일에도 기억이 나면 해당 단어는 완전히 암기를 완료한 것으로 판단하고 삭제하며, 일요일에 틀린 단어는 원래 단어장으로 다시 이동한다. 기본 단어장, 암기 완료 단어장 중 하나를 선택하면 단어를 무작..

오늘 개발한 빙판길 기믹이다. 빙판길 구현을 구글에 검색해 보면 Physics material을 사용하는 글이 많은데, 어째서인지 필사의 게임의 플레이어에게는 마찰력으로 인한 미끄러짐이 적용되지 않았다. 추측컨대 마찰력은 충돌에 의해 발생하기 때문에 충돌로 인해 밀리지 않고 스스로 방향키로 움직이는 플레이어의 특성상 마찰력이 작용하지 않는 것 같다. 빙판길은 물리 매터리얼을 사용하지 않고 스크립트로도 간단하게 구현이 가능하다. 해당 코드는 플레이어의 좌우 움직임을 담당하는 함수이다. l은 왼쪽 방향키, r은 오른쪽 방향키이다. 어느 방향으로든 방향키를 누르고 있으면 isRunning이 true가 되어 애니메이션 컨트롤러에서 달리기 애니메이션을 재생한다. 방향키를 누르고 있지 않으면 idle 애니메이션으로..

이번에 코드를 최적화하는 과정에서 PlayerPrefs를 사용한 부분이 있어 가져와 보았다. PlayerPrefs는 이전 글에서 이미 다루었기 때문에, 설명을 따로 하지 않고 바로 본론으로 넘어가도록 하겠다. Notice코드의 전문이다. 해당 코드는 DontDestroy 오브젝트인 System에 상속된 Notice오브젝트에서 사용하는 코드로, TextMeshPro 오브젝트인 Notice를 사용해 화면 중앙 상단에 특정 메시지를 출력하는 역할을 한다. 이런 방식으로 코드를 작성한다고 해서 동작하는데 문제가 발생하지는 않는다. 하지만 여러 오브젝트에서 상호작용을 하고 텍스트를 출력할 때마다 매번 Notice 오브젝트를 찾아서 message함수를 호출해야만 하는 번거로움이 있을 뿐더러, 함수가 외부에서 호출이..

목차 1. 설명 2. 활용 예시 1 - 변수 3. 활용 예시 2 - 태그 4. 장/단점 1. 설명 유니티 프로그래밍은 단순히 코드만 작성하는 것이 아니라 자체 응용프로그램을 활용해 오브젝트를 관리하거나 스크립트에 직접 영향을 끼칠 수 있다. 이 글에서는 Inspector를 사용해 스크립트에 데이터를 제공하여 하나의 스크립트로 여러 오브젝트를 다루는 방법을 알아보겠다. 2. 활용 예시 1 - 변수 맵에서 장애물로 활용 중인 톱니바퀴로 예를 들어 보겠다. 해당 오브젝트는 맵에서 4칸의 빈 공간을 좌우로 반복 이동한다. 해당 움직임을 코드로 간단히 작성해 보자. 한 방향으로 이동하면서 양 끝단에 도착하면 이동방향을 반대로 뒤집어 주게 된다. 다음 사진을 보도록 하자. 같은 톱니바퀴 오브젝트이며, 역할 또한 동..

목차 1. PlayerPrefs란? 2. 사용 방법 3. 주의사항 1. PlayerPrefs란? PlayerPrefs란, 데이터를 저장하고 불러올 때 사용이 가능한 클래스이다. 전역 변수와 역할이 유사하지만, PlayerPrefs는 실행을 종료해도 데이터가 사라지지 않는다. PlayerPrefs는 프로젝트 전체에서 사용하기 위해 사용하거나, 플레이 기록처럼 실행을 종료하더라도 저장되어야 하는 데이터를 보관하기 위해 사용한다. 2. 사용 방법 PlayerPrefs의 형태는 PlayerPrefs.SetInt("변수명", 값), PlayerPrefs.GetInt("변수명")가 존재한다. int 이외에도 float, string도 사용이 가능하다. 위 화면은 필자가 제작 중인 게임의시작 버튼을 클릭하면 맨 처음..

목차 1. 타일맵이란? 2. 사용 방법 3. SwapTile 4. SetTile(s) 5. 응용 1. 타일맵이란? 타일맵이란 씬에 그림을 그리기 위한 일종의 도화지이다. 팔레트를 이용해 배경, 장애물, 오브젝트 등을 맵에 그려 활용할 수 있다. 2. 사용 방법 타일맵을 씬에 배치하려면 우선 타일맵을 그리기 위한 타일 팔레트가 필요하다. 이 글에서는 스크립트 활용법을 주로 다루기 때문에 타일 팔레트를 만드는 방법은 생략하도록 하겠다. 타일 팔레트를 만들었다면 씬에 타일맵을 추가한다. 필자는 정사각형 타일맵을 사용하였다. 그 다음 Window 탭에서 타일 팔레트를 클릭해 오픈하면 팔레트가 팝업된다. 상단의 도구들을 활용해 씬에 그림을 그리면 된다. 자주 사용하는 도구만 간단히 설명하자면 붓 : 팔레트에서 타..

서론 RPG게임 개발을 하던 중 한가지 문제점을 발견했다. 옵션, 스킬 등 UI창의 정보는 씬을 넘어가도 유지되어야 하는데 씬을 넘어가면 모든 데이터가 초기화되었다. PlayerPrefs에 저장해 두었기 때문에 씬을 넘어갈 때마다 값을 불러와서 초기화하는 방법이 있지만 매번 값을 설정하기가 불편하고 볼륨 같은 값의 경우 저장해두지도 않았기 때문에 dontdestroy를 사용하기로 하였다. DontDestroy란? dontDestroy를 사용하려면 다음과 같이 오브젝트에 DontDestroy 설정을 해주면 된다. 현재 게임에는 캔버스만 설정해 두었지만 앞으로 더 늘어날 가능성이 있어 배열 형태로 선언해 두었다. 인트로 씬의 모습이다. System이라는 이름의 캔버스가 씬이 아니라 dontdestroy에 종..