본문 바로가기

반응형

분류 전체보기

(429)
맵뷰 만들기 CreateEmptyMapView 오브젝트 만들기, 사이즈를 작게 잡자ScrollRect 추가Mask 추가Image 추가(Mask때문에)Movement Type을 Unrestrict로 변경MapView에 Pannel 자식 추가, 사이즈를 크게 잡자, Tiles라고 이름변경MapView의 Content에 Tiles 끌어다 놓기
리팩토링 - Position 클래스 만들다 보니 각 오브젝트의 위치 동일 여부를 매번 if(a.x == b.x && a.y == b.y)와 같이 비교하는것이 여간 귀찮은 일이 아닙니다. 그리고 위치를 리턴할 때도 애매합니다. 리턴 값은 한번에 하나 밖에 할수 없기 때문에 x 좌표와 y 좌표를 얻어 오는 함수를 각각 만들수 밖에 없습니다. 너무 번거롭고 귀찮은 일입니다. 그래서 이번 장에서는 좌표를 추상화한 'Position' 클래스를 만들겠습니다. 그리고 추가적으로 C#의 '참조 일치'와 '값 일치'에 대한 개념을 배워 보도록 하겠습니다. 먼저 Position 클래스를 정의해보겠습니다. public class Position { public int x; public int y; public Position(int x, int y) { th..
차례 들어가며필자가 로그 라이크 게임을 만들어 가는 과정을 기록해 보고자 한다. 그래픽과 엔진에서 제공하는 기능에 대한 것들은 이미 다른 유수의 책과 인터넷이 충분히 설명하고 있으므로, 여기에서는 엔진에 대한 사용법과 그래픽을 표현하는 방법에 대해서는 최대한 자제하고 시스템을 어떻게 구축하면 되는지에 대해 집중적으로 연구해 볼것이다.기획퀘스트모든 것의 시작..주인공 만들기Player 클래스 정의주인공 아스키 코드로 표시하기 - Unity UGUI를 이용해 주인공 오브젝트 표시모험의 시작..몬스터 만들기 - Monster 클래스 정의몬스터를 아스키 코드로 표시하기 - 유니티 프리팹 사용하기리팩토링 - 플레이어와 몬스터의 상위 추상 Character 클래스 만들기리펙토링 - Position 클래스리펙토링 - C#..
리팩토링 - 플레이어와 몬스터의 상위 추상 Character 클래스 만들기 이전 장에서 우리는 프리팹을 이용해 플레이어와 몬스터에 공통으로 쓰일 ObjectView를 만들어 보았습니다. 하지만 그 과정 중 우리는 ObjectView를 플레이어와 몬스터에게 각각 추가 해주어야 했고, SetPosition함수도 각각 수정해 주어야 했습니다. 이렇게 공통점이 많은 클래스를 각각 만들어 관리하게 된다면 공통 기능에 대한 수정이 필요한 경우 양쪽 클래스 모두를 수정해줘야 한다는 불편함이 따라 옵니다. 여기에서 우리에게 필요한 것은 '추상화'와 '상속'입니다. 공통 기능을 상위 클래스 작성하여 상속을 통해 각 하위 클래스에서 사용할수 있도록 하고, 각 클래스 별 필요한 기능들에 대해서는 하위 클래스에서 개별적으로 정의 합니다. 이렇게 작성된 코드들을 보다 유지 보수가 편리하도록 변경하는 ..
몬스터를 아스키 코드로 표시하기 이번 장에서는 몬스터 오브젝트의 뷰를 만들 차례입니다. 몬스터도 플레이어 처럼 하나의 아스키 코드로 표현 됩니다. 몬스터의 알파벳 첫글자를 따서 'M'이라고 하도록 하죠. 잠깐 몬스터 뷰를 개발하기 전에 유니티의 '프리팹'이라는 것에 대해 잠깐 알아보고 가도록 하겠습니다.(이미 잘 알고 계신다면 그냥 넘어 가셔도 괜찮습니다) 프리팹?유니티 게임 오브젝트를 인스턴스화 하는 방법은 두가지가 있습니다. 하나는 프로그래밍적으로 코드를 사용하여 인스턴스를 만드는 것이고, 다른 하나는 에디터상에서 미리 만들어진 프리팹을 로딩하는 것입니다. 프리팹을 사용 했을시 코드 상으로 최소 몇줄 이상 되어야 하는 코드들을 한줄로 줄일 수 있고, 런타임에 속성들을 변경하여 테스트 해볼 수 있습니다.프리팹은 내부적으로 하나( 혹은..
몬스터 만들기 이제 부터는 주인공과 열심히 싸워주고 경험치를 주는 몬스터를 만들어 보겠습니다. 몬스터는 각 종 수치와 액션 관점에서 플레이어와 비슷해 보이지만 개발 관점에서 보면 사실 상당히 다른 구조를 가지고 있습니다. 이전 장에서 개발한 플레이어는 프로그램의 시작에서 부터 끝까지 단 하나의 객체밖에 존재할 수 없으며 플레이어가 죽는 순간 게임은 종료 됩니다. 하지만 몬스터는 플레이어와 달리 게임 플레이중에 여러 몬스터들이 동시에 존재 할수 있고, 파괴되었다고 해서 게임이 종료 되지도 않으며, 게임 플레이 중에 지속적으로 생성과 파괴를 반복합니다. 또한 다양한 종류의 몬스터를 표현하기 위해 동일한 클래스에 데이터만 바꿔서 표현해 줄 수도 있있습니다. 위의 요구 사항들을 만족하기 위해서 몬스터 클래스를 '고정 정보' ..
[Unity] Asset Bundle !!NOTE!! 유니티 2018.2 이상 버전 부터 AssetBundleManager의 지원을 중단한다는 공식 발표가 있었습니다. 2019.3 버전 부터 '어드레서블 에셋 시스템'이라는 새로운 에셋 관리 시스템이 추가 되며 , 2018 LTS 릴리스에서도 지원 된다고 합니다. 아래 내용들은 예전에 이런 것들이 있었구나..하는 역사 공부 정도로만 봐주시면 됩니다. 어드레서블 에셋 시스템은 -> https://blogs.unity3d.com/kr/2019/07/15/addressable-asset-system/에 있습니다. 내용도 알차고 한글로 잘 씌여져 있는지라 제가 따로 포스팅을 쓸 건덕지가 없네요. 들러 주셔서 감사합니다. 좋은 하루 되세요. 이번 포스팅에서는 어셋 번들의 기본 개념과 유니티에서 어셋스..
[Unity] Coroutine 코루틴(Coroutine) 이해하기 http://unityindepth.tistory.com/21 https://en.wikipedia.org/wiki/Coroutine
기획 세계관 개요이 게임의 배경은 마법과 검이 공존하는 판타지 세계입니다. 오래전, 누군가에 의해 거대한 던전이 만들어졌습니다. 사람들은 이 던전을 **‘마법사의 미궁’**이라 부르며, 그곳에 엄청난 보물이 숨겨져 있다는 소문이 퍼졌습니다. 하지만 이 던전의 기원에 대해선 아무도 정확히 알지 못합니다.누가 지었는가? 고대의 위대한 마법사일지도 모릅니다.왜 지었는가? 그의 가장 소중한 보물을 지키기 위해서일지도 모릅니다.언제 지었는가? 수백 년 전일지도, 수천 년 전일지도 모릅니다.그 진실은 안개 속에 가려져 있습니다.던전의 특징무한히 변화하는 구조던전에 들어설 때마다 내부의 구조가 무작위로 변형됩니다.각 층마다 서로 다른 함정과 몬스터가 기다리고 있습니다.마법적 에너지로 가득한 공간던전 내부에는 강력한 마법적..
퀘스트 들어가며퀘스트는 게임의 흥미를 유지하고 플레이어에게 목표를 부여하는 중요한 요소다. 로그라이크 장르는 무작위성에 기반하지만, 반복적인 플레이에 변화를 줄 수 있도록 다양한 퀘스트를 제공할 필요가 있다. 본 포스트에서는 메인 퀘스트, 사이드 퀘스트, 특수 이벤트 퀘스트로 나누어 각 퀘스트들에 대한 기본 컨셉을 잡아 보도록 하겠다.1. 메인 퀘스트 (던전 탐험의 핵심 목표)▶️ 1.1 보물을 찾아라목표: 던전 깊숙한 곳에 숨겨진 전설의 보물을 찾아라.설명: 던전의 최심부에는 마법사의 가장 소중한 보물이 숨겨져 있다. 그곳에 도달하면 게임의 주요 목표를 달성하게 된다.▶️ 1.2 수수께끼의 문목표: 특정 층에 있는 수수께끼의 문을 열어라.설명: 던전의 중간층에 잠겨 있는 거대한 문이 있다. 그 문을 열기 위해..

반응형