본문 바로가기

전체 글

(16)
[Unity] Merge-Is-Mine 범용적인 팝업시스템 구성 선요약Registry 패턴을 응용하고, 구현하여기존 팝업시스템의 데이터구성을 최적화한다. O(n^2) -> O(n) 팝업을 하나의 변수내에서 관리하되, 입력받는 데이터를자동으로 알맞은 팝업에 할당하여 구성하는 시스템을 구현한다 위와같이 여러 팝업이 뜨는 것을 구현해야할 필요가 있었다. 이때, 각 팝업당 필요한 정보가 각각 다른데, 팝업당 각각의 inspector property로 집어넣게되면팝업하나가 늘어날때마다, 관리해야할 변수가 하나씩 더 늘어나고,각각 팝업을 관리해야하여 유지보수에 매우 불편함이 발생하게 된다. 또한 리스트로 한번에 관리한다고 해도, 팝업데이터구성에 데이터자료 개수 n, 그에따른 팝업 개수 n으로 했을때,각 데이터별로 리스트를 모두 순회하여 판별해줘야하기 때문에 O(n^2)의 복잡도..
[Unity] Merge-Is-Mine 핵심기능 개선작업 기존에 리펙토링과, 비주얼 개선작업을 진행한 drag system의 결과는 다음과 같았다. https://nunsori.tistory.com/19 [Unity] Merge-Is-Mine 핵심기능 리팩토링, 비주얼 개선1. 기존 drag system의 문제점@merge effect글자 리소스 변경 제외@우선 기획자가 작성한 프로토타입을 새로운시스템으로 개발을 해야할 필요성이 있었다. - 문제점1. 현재 드래그하여 물체를 이동하는nunsori.tistory.com 물체를 이동시키고, glow를 넣고, 화살표 가이드를 추가하고, 물체 이동 조건을 더 명확히하여 개선하였지만,몇가지 문제사항이 더 남아있었다. 물체가 0.n 초의 딜레이 후 이동이 아닌, 즉발형으로 이동되어 유저가 받는 피드백, 액션성 부족 문제상..
[Unity] Merge-Is-Mine 핵심기능 리팩토링, 비주얼 개선 1. 기존 drag system의 문제점@merge effect글자 리소스 변경 제외@우선 기획자가 작성한 프로토타입을 새로운시스템으로 개발을 해야할 필요성이 있었다. - 문제점1. 현재 드래그하여 물체를 이동하는 시스템의 코드가 모두 하나에 몰아져 있어 판정, 기능면에서 수정을 진행할 때, 코드가 복잡해지고, 수정시간도 오래 걸린다. 2. 영역을 이어주는 화살표의 위치가 정확하지 않으며, 플레이상에서 화살표의 표기 문제와 에러가 많이 발생하게 된다. 3. 영역 물체를 이동시켜주어야 하는데, 이동에 대한 명확한 기준이 정의되어 있지않고, 영역에서 얼마나 떨어져 있느냐에 대한 절대 위치만 가져온 뒤, 이동을 진행시켜주어, 물체가 이동할때 물체가 영역 바깥부분에 나오는 현상이 발생한다.위 그림과같이, 이동 ..
[Unity] 프로젝트 소스코드 관련 간단 검토자료 https://github.com/Merge-is-Mine/Merge-is-Mine [리펙토링 관련 검토][유틸 관련]- Dectector.cs => 개선완료- EffectController.cs그대로 사용예정- CameraMovement.cs우선 그대로 사용예정[Entity 관련]- Entity.cs*public abstract void DamagedFun(Vector3 pos); 함수 protected로 변경필요 (Damage주는 것은 무조건 Entity의 Damage함수로만 주기)* 이외 Entity상속받은 Class (Player, Enemy) 모두 우선 그대로 사용예정, 다만 forcedmove와 같은 연출관련 함수는 다른곳으로 빼는것이 나아보임- FlyEnemyChase.cs삭제후 새로 추적..
[Unity] 현재 프로젝트문제점, 개선고려점 정리 뉴비겜톤에 참가하며 진행하였던 프로젝트의 문제점을 코드적으로 확인하고 개선을 수행, 고려해보는 작업을 진행해보려한다.https://nunsori.tistory.com/16 [뉴비겜톤] 멘토링 내용, 진행내용 정리경일게임일게임IT아카데미에서 주최한 뉴비겜톤에 참가하고,프로젝트를 진행하며, 개발 부분에서 느끼게되었던 점을 정리하려한다. 팀개요이름 : 풀리퀘스트인원 : 개발2, 기획1, 아트2프로젝트nunsori.tistory.com - Tag, Layer정리, DetectorClass같은 이름의 tag가 형식이 다르게 삽이이 되어있고, 명칭도 이 태그나 레이어가 어떤것인지 정확히 알아볼 수 없는 것들이 존재한다.tag와 layer에 둘 다 enemey 라는 네이밍이 존재하며 혼동이 일어날 수 있다. 보통 ..
[뉴비겜톤] 멘토링 내용, 진행내용 정리 경일게임IT아카데미에서 주최한 뉴비겜톤에 참가하고,프로젝트를 진행하며, 개발 부분에서 느끼게되었던 점을 정리하려한다. 팀개요이름 : 풀리퀘스트인원 : 개발2, 기획1, 아트2프로젝트 : 2d 플렛포머 퍼즐게임멘토링 진행내용 신청을 진행 후, 각 1, 2주차 멘토링이 진행되었으며, 게임톤 이후까지 길게 고려하는 프로젝트에서 각 멘토링별 개발 부분 고쳐야할 점이나, 새롭게 알게 된 점을 정리하면 다음과 같았다. 1. 컨벤션이 중요하다.- Github 저장소에 commit하며 적게되는 내용, 코드를 작성하며 변수의 이름을 짓는 규칙등이 어떤 형식으로 되어있어야 할지 명히 정의되어있으면,협업을 진행하는 과정에서 다른 사람이 어떤일을 했는지 한눈에 확인 가능하고, 따로 회의를 진행할 필요없이 원활한 진행이 ..
[Unity] Merge-Is-Mine 맵 생성 시스템 선 요약8번출구류 게임의 반복되는 맵 시스템을 2d구조에서 구현해주기 위해 map을 최적화하여 관리할 수 있도록 진행하는 시스템 제작map이 생성되는 규칙을 쉽게 유지보수하기 위한 시스템 구현 * 구현 영상은 해당 글 가장 밑부분에서 확인할 수 있습니다.구현목표구현하려는 기본 map flow는 위와같다. 1. 원래의 상태를 보여주는 main map2. main map에서 사물등의 위치변화를 주어 만든 quiz map quiz map에서 오답을 고르면다시 main map을 보여주고, quiz map을 다시 입장하게 된다. 그리고 이 main map variation이 여러개이면 다음과같은 flow가 나온다따라서 이를 구현해주기 위해서 필요한 map의 종류는 다음과 같다. 1. main map2. main과..
[Naming Conventions] for c# 팀 단위로 개발을 진행하다보면, 각 클래스, 변수, 함수 등은 어떻게 이름을 지어야 유지보수에 좋고 가독성이 좋은지 고민하게된다.변수명을 아무렇게 지으면.. 나중에 수정할때 고통받는다. 1. Naming Convention각 이름을 짓는 방법이 있다. 종류와 예시는 다음과 같다. - Camel Case 각 단어는 붙여쓰고, 첫 단어를 제외한 나머지 단어의 첫글자는 대문자로 ex) camelCase, playerController ... - Pascal Case 각 단어의 첫 글자는 대문자로, 나머지는 소문자로 ex) PlayerController, GameController ... - Snake Case 단어는 소문자만 써서, 각 단어는 언더바 '_' 로 구분지어 표현 ex) snake..