[DevLog#39] Unity 고급 인벤토리 구현기 2 - 인벤토리 데이터
·
개발일지
이번 파트에서는 실제 인벤토리 데이터 연결과 누적가능한 아이템/누적이 불가능한 아이템들을 분리하고, 표현하는 기능까지 진행해보겠습니다. 인벤토리 클래스우선 인벤토리 데이터에 사용될 클래스를 구현해주었습니다.전부 공개하기에는 내용이 길어져 전부 수록할 수는 없지만아이템 데이터를 담는 클래스 / 인벤토리 클래스(권한과 아이템 정보) 두개를 만들어 주었습니다. 또한 Enum을 하나 만들어인벤토리의 권한을 빠르게 확인 할 수 있도록 권한을 비트연산을 통해 처리했습니다.public enum InventoryPermission{ Read = 0, //읽기 권한만 Put = 1 이로써 세가지 클래스를 가지게 되었습니다.ItemData : 이전에 만들어둔 아이템의 정보가 들어있는 데이터베이스ItemInf..
[DevLog#33] 유니티 레벨디자인 - 스플라인으로 도로깔기
·
개발일지
이전 개발일지에서 깔아 둔 임시도로입니다. 저 흉물스러운 페인팅을 빨리 없애고 싶었습니다.1. 텍스쳐 작업도트 느낌을 유지한 채로 아스팔트와 콘크리트 텍스쳐를 만들어주었습니다.노멀맵도 추가적으로 만들어서 깊이감을 더해줄까 하다가 눈에 크게 띌 것 같지 않아, 3DMesh에서 마름모꼴 형태의 스커트 작업만 해주기로 했습니다.2. 구현 로직A. SplinerContainer - Unity빌트인 기능인 Spline을 이용해 도로가 깔리는 구간에 스플라인 설치도로를 어떤 루트로 깔지 Spline을 이용해 기준선을 잡아줍니다.B. RoadRibbonBakerOffset - 위에 만든 Spline을 기준으로 메시 자동생성Spline을 참조, 유격 설정 기능까지 추가하여 한 개의 Spline으로 차도, 인도 모두 생..
[DevLog#28] Unity6 업그레이드(마이그레이션) 이후 발생한 URP/Shader 문제 해결
·
개발일지
원래 이번 개발일지에서 UI를 업그레이드해 볼 계획이었지만,작업 중 필요했던 기능이 Unity6에 기본 탑재되어 있다는 소식을 듣고...바로 Unity6로 업그레이드를 감행했습니다.그 결과...셰이더 전멸...멘탈 나락...Unity6로 업그레이드하자마자 벌어진 일이전까지 잘 동작하던 셰이더들 작동 불가URP의 Lit.shader를 커스터마이징하여 사용 중이었는데 Unity6의 URP 구조 변경으로 인해 전부 깨짐마이그레이션 자동화가 일부 적용되었지만, 핵심 기능 다수 수동 수정 필요(UI효과 >>> 셰이더 고치기라고 판단했습니다... 그것은 오만이었습니다.)뼈를 주고 똥을 취한 느낌.. 업그레이드 세부 정보Unity버전: 2022.3.29 f1 → 6000.0.55 f1 (둘 다 LTS버전)Render..
[DevLog#21] 세이브 데이터 저장/로드 JSON 구현
·
개발일지
유저 세이브 파일을 어떤 방식으로 저장할것인지, 어떤 플랫폼(Steam, Stove 등)에 출시를 할것인지, Cloud / 서버 사용여부 등여러 고려요소들에 따라 판단하여 세이브/로드 구조를 고민해야합니다.다만 개발이 어느정도 진척이 있고난 이후에 해도 문제가 없는 기능이지만 당장 저장기능이 필요한 상황 (인벤토리 테스트 / 유저스텟 / 메신저 기능) 이 와서세이브 로드 기능을 작업하게 되었습니다.기능의 가장 끝 단인 '어떻게, 어디에 저장할 것인지'의 여부만 남겨두고기본 경로에 '평문' 파일로 저장되도록 구조를 짰습니다. 대략적인 기능의 구현방법은 아래 링크를 참고하세요[Unity] 세이브 & 로드 완전 가이드 - PlayerPrefs부터 JSON 파일 저장, 경로까지보통 유니티개발에서 GameMana..
[DevLog#20] 유니티UI NPC 메신저 기능 구현기
·
개발일지
게임 가이드 기능을 포함, 퀘스트의 원격 간편 수락, 이전에 해왔던 히스토리에 대한 기록이것을 전부 아우를 수 있는 기능이 무엇이 있을까 고민을 해보았습니다.0. 메신저 기능이와 가장 잘 맞아떨어지는 기능이 메신저 기능이었습니다.이 '페이크' 메신저를 통해 NPC와 대화를 주고받는 듯한 기능을 만들면 괜찮을 것 같다는 판단 하에 작업을 진행했습니다.1. 구현 플로우NPC의 초상화 리스트(a.k.a 친구목록)읽지 않은 메시지가 있을 때, 인디케이터(레드닷)를 통해 알림NPC초상화를 눌러 메시지 내역 확인가능, 읽음 처리2. 구현 목록UI 메신저 프레임메신저관리 클래스 / 말풍선에 들어갈 메시지 클래스NPC 초상화 버튼각각의 말풍선(좌/우 배치 기능, 읽지 않은 메시지 테두리 강조)유저 데이터(세이브데이터)..
[DevLog#18] Unity 부드러운 UI 애니메이션 구현기
·
개발일지
개발일지 전체 목차 둘러보기 이번 개발일지에서는 좀 더 부드러운 UI 효과를 주기위해 애니메이션을 구현하였습니다.UI의 특성상 오늘은 글은 좀 짧고 사진 위주로만 포스팅하였습니다. 체력 UI/UX 증감 효과 적용이전까지는체력이 닳게 되면 맞는 즉시 100% → 90% → 50% 즉각적으로 감소했었습니다.이런 부분이 마음에 들지 않아마치 철권과 같은 격투 게임에서 보여지는 체력게이지 효과를 작업해보았습니다. 이전(좌) : 당장 체력이 닳는 모습을 보면 툭-툭- 하면서 깎이는 모습입니다.이후(우) : 부드럽게 체력이 닳고 뒤이어 시각적 효과용 체력바가 따라 줄어드는 모습입니다. 반대로 체력을 회복할때는 시각적효과용 체력바가 먼저 증가하고 실제 체력바가 따라서 증가합니다.게이지별 효과 적용다음은 각 게이지..