프로젝트
2021-07-10 개발일지
충돌 위치 GetTile 총알 등에서 Ray를 통해 충돌처리를 하고 hit.point에 있는 Tile을 가져오면 위치가 제대로 되지 않아 잘못됐거나 비어있는 상태의 타일을 가져오게 된다 현재는 OnTrigger에서 충돌한 콜라이더의 collider.ClosestPoint를 통해 반환된 위치에 존재하는 Tile을 가져오게 해놨다 +각 타일마다 enum형식을 추가하고 싶은데 RuleTile에 TileBase를 상속받고 enum을 가지고 있는 새 CustomTileBase를 상속받게 했더니 뭔가 그럴 수 없다고 뜬다 좀 알아봐야겠다
2021-07-09 개발일지
Tile Extra 그동안 미루던 유니티 Tile Extra를 사용했다 예전에 사용해본 적이 있었지만 좀 오래되고 깊이있게 사용하진 않아서 기억이 거의 리셋.. Rule Tile, Rule Override Tile, Sibiling Tile 등등 다양한 종류의 확장타일들이 있었다. 기존에 물감이 묻는 타일과 그렇지 않은 타일을 Grid를 나눠서 Tag를 통해 체크했었는데 앞으론 하나의 Grid에서 타일을 찍고 Tile에 Enum을 달든 Tile 분류를 나눠서 담아두고 체크하든 할 것 같다
2021-07-05~07 개발일지
Json으로 오브젝트 저장 및 불러오기 원래 타일맵만 저장, 로드 기능이 있었는데 오브젝트들도 저장, 로드 기능이 적용되게 했다 이 부분을 만들면서 고민을 많이했는데 1. 씬에 있는 어떤 오브젝트를 저장할 것인가?? 유니티를 잘 다루지 못하는 팀원을 위해 만드는 기능인데 씬에 존재하는 모든 오브젝트를 저장하게하면 문제가 생길 수도 있을 것 같았다 그래서 생각한 방법은 두가지.. 정도인데 1. 저장 가능한 오브젝트들은 특정 스크립트를 상속받게 하고 해당 스크립트를 지닌 오브젝트만 저장한다 => 스크립트를 지니지 않은 오브젝트도 존재할 것이고 구조가 별로라고 생각했다 2. 씬에 존재하는 오브젝트가 프리팹일 경우 저장한다 => 좀 특이한 방법인데 게임 오브젝트를 저장하기엔 좋다고 생각했다 런타임에서 돌아가는 ..
2021-07-02~04 개발일지
Json 저장과 파일 입출력 며칠간 하나의 시스템을 개발하다 보면 일지가 너무 길어지고 정리하기 어려워진다 따라서 조금 분리하기로 결정! 맵데이터를 저장하고 불러올 것이다 JsonUtility와 NewtonJson Json을 처음 사용해보면서 다양한 라이브러리 중에 뭘 사용할지 선택해야했다 선택하기 위해선 차이점들을 알아야했는데 자세한 설명이 되어있는 글은 찾기 어렵더라 찾아본 내용을 정리하자면 1. JsonUtility - 유니티5.3 이상부터 지원하고있다 - 가장 간단한 기능들만 존재한다 - 배열, 리스트 등의 형식을 변환할 수 없다 하지만 Wrapping Class (class, struct) 내부에 정의된 클래스, 배열, 리스트 등의 형식은 Json으로 변환해준다 리스트, 딕셔너리를 직렬화하고 싶..
2021-06-29~02 개발일지
스테이지 관리 맵 에디터 구상 이전에 맵 에디터를 잠깐 건드렸었는데 실제로 맵을 찍을 사람을 생각하지 않고 그냥 내가 제작 해보고싶던 맵 에디터를 만들려고만 했던 것 같다 그래서 맵 에디터의 제작 목표를 확실히 하고 제작에 들어가기로 한다. 들어갈 기능 1. 씬로드가 아닌 더블클릭이나 드롭다운 클릭으로 바로 맵을 불러올 수 있으면 좋겠음 2. 게임 실행 도중에도 오브젝트를 추가하고 맵을 저장하는 기능 맵 파일 목록 나열 Application.persistentDataPath + "/savedGames.gd" 게임 실행 도중에도 오브젝트를 추가하고 맵을 저장하는 기능 이 기능을 만들기 전에 결정해야 할 것이 또 있다 1. 화면 안에 기능을 넣을 것인지 2. 유니티 UI로 기능을 제작할 것인지 뭐가 나을까?..
2021-06-21 개발일지
퀄리티 올리기 게임의 퀄리티를 올려보자 올해 목표 중 하나였던 BIC의 접수마감이 23일 오후3시로 얼마 남지 않았다 더 좋은 퀄리티로 데모 버전을 제출하고 싶었는데 디테일한 부분과 연출 등을 신경쓰지 못 해 지금 퀄리티가 많이 아쉽다.. 얼마 남지 않았지만 마지막까지 최선을 다해봐야겠다 첫 시작 컷씬 수정 기존에 바로 정령이 나타나는 타임라인을 별이 빛나는 하늘에서 시작하며 감성 한스푼을 넣어보았다 이 과정에서 Cinemachine Dolly Track을 처음 사용해보았는데 시간이 너무 늦어서 다음에 내용 보충을 해야겠다..
2021-06-18~20 개발일지
몬스터 AI : Behavior Tree로 변경 원거리 버섯, 레이저 돌을 FSM형식에서 BT형식으로 변경하자 원거리 버섯 행동 정의 1. 감지 반경 안에 적이 없다면 땅 위를 돌아다님 (Random 시간 동안 Idle과 Move 반복) 2. 감지 반경 안에 적이 있다면 ㄱ. 공격 범위 안에 적이 있다면 적 방향으로 에너지볼 발사 ㄴ. 공격 범위 밖에 적이 있다면 적 방향으로 이동 1. 감지 반경 적 체크 Physics2D.OverlapCircle로 체크한다 2. 공격 반경 적 체크 동일하게 Physics2D.OverlapCircle로 체크한다 Physics2D.OverlapCircle로 체크한다 레이저 돌 적들의 색상을 현재는 몬스터의 가장 상위 오브젝트에서 한번에 해주고 있는데 하위 오브젝트들의 스크..
2021-06-16~17 개발일지
스펀지 블록 게임 내 스펀지 블록을 리팩토링하자 현 상황 왠진 모르겠지만 갑자기 스펀지 타일 위에서 플레이어 State가 Fall에서 Idle이나 Move로 돌아오지 않는다 그 외 급하게 만드느라 콜라이더 처리 등 정확한 설계 및 구현이 필요한 상태 들어가야할 기능 몬스터들은 통과하지 못함 같은 색상일 때 플레이어만 통과 가능 물감이 칠해지지 않음 1. 몬스터들은 통과하지 못하지만 색이 같은 플레이어는 통과할 수 있는 오브젝트 어떤 방법을 써야할까 되는대로 생각해봤다 1. Sponge Tile의 Collider를 플레이어의 색상에 따라 키고 끈다 문제점: 콜라이더 자체를 키고 끄면 몬스터들도 통과할 수 있음 해결법 1. 스펀지 블록엔 IsTrigger가 켜진 Collider를 둔다 몬스터들은 앞에 벽이 ..