프로젝트
2021-06-13 개발일지
오늘의 할일 - 간단한 세이브 기능 구현 - 몬스터 변경 기능 조정 - Cafe Scene 점검 - Train Scene 컷씬 추가 - 사망시 재시작 - 튜토리얼 추가 1. 간단한 세이브 기능 구현 간단한 세이브 기능! 그렇다면 무엇을 저장하고 로드할 것인가 1. 플레이어 위치 2. 플레이어 색상 3. 팔레트 색상 4. 색상 아이템 + 현재 게임은 새로시작만 존재 (새로시작시 저장된 데이터 모두 초기화) ES3 에셋이 있기 때문에 아주 간단하게 저장하고 로드할 수 있다 나중엔 데이터 저장 및 로드 기능을 자세히 다뤄보겠다 지금은 시간이 없으니께.. 2. Cafe Scene 점검 1. 대화하는 동안 플레이어 조작 멈춰두기 2. 오른쪽 끝으로 이동시 다음 씬으로 넘어가게 하기 3. Train Scene 컷씬..
2021-06-12 개발일지
Spawn System 지금까진 스테이지를 직접 보고 바로 수정할 수 있게 씬에 Enemy등이 모두 미리 배치되어있는 상태로 존재하였다 이 상태를 SpawnManager를 통해 수정하고자 한다 하지만 시간이 많지 않으니 빠르게 작업할 수 있는만큼만 수정해야한다..! 수정 이유 1. 널브러져있는 적들, 하이어라키에서 바로 알아보기 힘들다 2. 미리 생성되어있는것이 후에 생성하는 것보다 메모리상 안좋은가? 이건 모르겠다 목표 1. 스테이지 설정 2. 생성 범위 설정 3. 생성 범위당 생성할 프리팹과 개수 설정 직렬화해서 SO로 구현해놨다 구현하다가 예전에 이걸 왜 안했었는지가 기억났다 생성하는 몬스터별로 색상을 정해줘야했는데 이걸 어떻게 해야 가장 좋을지 생각하다가 빨리 진행해야하는 다른 시스템을 만들러가서..
2021-06-09~11 개발일지
캐릭터와 몬스터들의 공격 시스템, 데미지 시스템을 정리해봐야겠다 지금 쓰는 글들은 생각나는걸 일단 다 쓰면서 나아가는거라 정보글이 되려면 한번 더 정리를 해야될것같다 구조 설계를 하다보면 확장성에 대해 항상 고민을 하게 되는데 경험이 많지 않다보니 확장을 어디까지 생각해야할지도 참 고민이 된다.. 우선 공격하고 데미지가 들어가고 어떤 물체는 데미지를 입고!를 정리해보자면 데미지를 주는 주체 Damager 데미지를 받는 객체 Damageable 가 존재한다 물론 현실에서라면 모든 물체에 공격을 가할 수 있고 데미지를 입힐 수 있겠지만 게임에선 어떨까 게임은 데미지를 입힐 수 있는 오브젝트가있고 그렇지 않은 오브젝트가 있다 플레이어 캐릭터는 적 오브젝트에게 데미지를 입힐 수 있다 Damager엔 Target..
2021-06-07~8 개발일지
일주일 뒤까지 제출해야할 프로토타입을 만들어야하므로 제작하던 맵 에디터는 우선순위를 뒤로 빼고 먼저 씬 구성을 손보기로 하였습니다 목표 씬 구성 다듬기 항상 존재해야하는 Manager 오브젝트 나누기 UI들이 켜져있어야 하는 Stage와 그렇지 않은 Stage들 구분하여 씬 들어갈 때 제어하기 DataManager -게임 데이터 모음(캐릭터, 몬스터, 맵, 이펙트, 사운드) UIManager 씬이 켜질때 실행되어야 할 함수들 -Stage 씬이라면 캐릭터 정보 UI, 레벨 게이지 SetActive (true) -마을, 컷씬이라면 캐릭터 정보 UI, 레벨 게이지 SetActive (false) 지금은 씬을 이동하면서 스테이지를 변경해서 저런식으로 생각했었는데 잠깐 더 생각해보니 정보UI와 레벨게이지UI를 싱..
2021-06-02~03, 05 개발일지
맵 생성 관리에 대해 한번 정리하고자 한다 목표 JSON으로 맵 데이터를 저장, 로드하여 생성한다 제작 이유 씬마다 스테이지를 만들어 두고 씬을 불러오면 용량이 커짐 망설이는 이유 스테이지를 만들어두고 관리하는게 테스트하기나 관리하기 편하다라는 의견 존재 => 스테이지 생성 버튼 누르면 씬에 바로 스테이지 생성되게끔 커스텀 에디터를 만들면 상관 없지 않을까? 스테이지 로드 (맵 로드, 플레이어 생성 위치 포함, 적 스폰 위치 포함, 트랩도 타일처럼 찍음(피봇 위치 조정)) 타일맵엔 타일들만. 유니티의 타일맵에 현재 찍혀있는 타일들의 정보를 JSON화 Map Load시 JSON정보를 바탕으로 타일을 찍는 형식으로 가보자 필요한 것 커스텀 에디터로 Map Load, Save 제작 버튼 존재하는 타일 Json..
2021-06-01 개발일지
어느덧 6월이 되었군요 오늘은 깃을 통해 협업을 빠르게 할 수 있도록 해보겠습니다 깃을 많이 사용해보진 않아서 아직 익숙하진 않지만 지금 생각나는 깃 용어들로는 로컬 저장소, 원격 저장소, 풀, 푸쉬, 브랜치 등이 있네요 진행중인 프로젝트는 프로그래밍은 저 혼자라 깃을 통해 많은걸 하고있지는 않고 버전관리, 백업 등에만 사용하고 있었습니다 (이것도 조금 소홀했었네요.. 반성...) 오늘 할건 팀원을 추가하고 로컬 저장소를 원격 저장소와 동기화시키는 방법만 간단히 알아볼 것 같습니다 우선 프로젝트를 공유하려면 공유할 프로젝트가 있어야겠죠? 저는 이미 프로젝트가 존재하고 원격저장소에 연결되어있습니다만 작업중인 유니티 프로젝트를 원격저장소에 연결하는 방법을 간단히 설명하겠습니다. 1. GitHub 사이트에서 ..
2021-05-30 개발일지
버섯의 시야각 Field Of View (FOV)를 수정하다가 Inspector에서 시야각의 모양(Box, Collider, Arc)을 드롭박스로 선택해서 손쉽게 변경할 수 있게하면 좋겠다는 생각을 했다. 따라서 오늘은 Serializedproperty를 사용하여 드롭박스로 인스펙터를 쉽게 변경하는 법에 대해 알아보려한다 목표: DropBox에서 선택한 것에 따라 Inspector창 변경되게 하기 어찌저찌 하긴 했는데 생각보다 커스텀 에디터에 대한 내용이 되게 많고 리플렉션 등 아직 익숙하지 않은 문법들이 나와서 쉽지 않았다 커스텀 에디터를 잘 활용해서 생산성을 높이고 싶기도 하지만 또 하나에 깊이 들어갈 순 없으니 우선 이정도만 해야겠다 오늘 구현한건 다음에 내용을 추가하도록 하겠다
2021-05-28 개발일지
어제부터 진행중인 버섯 AI를 위해 유니티 타일맵에 대한 스크립트를 짜려고합니다. 코딩을 하기 위해서 우선 생각을 해야겠죠? 무엇이 필요한가? 1. 위치 A와 B를 입력하면 A에서 B까지 타일의 존재 유무, 타일의 Type이 Ground인지에 따라 bool 값을 return하는 함수 따라서 매개변수로 Vector3 A, Vector3 B 전달, bool 값을 return하는 public bool IsThereARoadFromAtoB(Vector3 A, Vector3 B)를 제작할 것이다. 타일의 존재 유무 타일의 존재 유무를 판단하기 위해선 1. 판단하려는 Tile을 가지고 있는 Tilemap 필요 => Tilemap.WorldToCell로 특정 위치를 지정하고 Tilemap.GetTile로 타일을 가져..