
# 이전에 보스 스크립트들을 리펙토리 중이다. 보스들이 공통적으로 구현해야하는 기능들을 부모 오브잭트에서 상속 시켜야한다. 세가지 방법으로 정리중이다. 1. 일반 메서드를 상속시키기 2. 추상 메서드를 상속시키기 3. 인터페이스 상속시키기 이렇게 세가지 방법으로 정리 중이다. 일단 추상 메서드를 써야하기 때문에 추상클래스(public abstract class AbsBossClass)로 정의하고 하위 메서드들을 정리중이다. *첫번째로 공통된 기능을 파악해봤다. 1. Init 2. StartBossFight 3. Phase1,2,3 4. PhaseColor 5. MovePattern 6. TransitionToPhase2,3 7. BossDie 이 기능들은 모든 보스에서 반드시 작동해야하는 기능들이다. *..
#게임 테스트를 계속 진행하다보니 장비가 유저의 전투력에 큰 영향을 미친다 생각이 되었다. 장비를 보관할 수 있는 인벤토리의 용량에 대한 로직을 수정할 필요가 있었다. 이전에 유저는 2000Gold를 상점에 지불하면 용량을 무한정으로 늘릴 수 있었다. 이렇게 둔다면 유저의 전투력은 무한정으로 상승하게 될 것 이고 장비의 벨런스도 무너질 가능성이 보였다. 유저의 인벤토리 최대 용량과 지불 비용에 제한을 둘 필요가 보였다. 먼저 인벤토리 최대 용량에 대한 로직을 생각해보았다. 어떤식으로 제한을 둘지 먼저 정해야 했다. 윤회 횟수를 참조하여 제한을 두기로 정했다. 현재 유저는 기본으로 5칸의 인벤토리 용량을 갖고 게임을 시작한다 1윤회일때 9칸까지 용량을 증가시킬 수 있다. (첫 윤회때는 많이 강해진 상태로 ..
# 상자에서 드랍아이템이 생성되는 로직에 문제가 있었다. 랜덤한 위치를잡고 드랍아이템에 포지션을 정해주었는데 문제는 서로 아이템들끼리 간격이 벌려지지않았다. 게임에서 드랍아이템을 획득하는 방법이 아이템과 충돌 or 아이템을 클릭 으로 획득하지만 드랍아이템들이 겹치는 문제는 꼭 해결해야했다. 아이템들끼리 겹친다면 어떤 아이템인지 확인이 불가능하다. 기존 로직에서 아이템 간격을 체크하는 부분을 추가하여 수정했다 수정한 코드이다 private HashSet existingPositions = new HashSet(); private void SetRandomPos(Transform callPosition, GameObject dropItemGo) { Vector2 chestPosition = callPosit..

#현재 우리 게임에서는 json을 이용해 데이터를 직렬화/역직렬화 하는과정으로 Save/Load 하는 과정으로 처리하고있다. 만약 유저가 저장되어있는 데이터를 임의로 변경한다하면 게임의 시스템이 무너질 수 있다. 저장되어있는 데이터들의 암호화가 반드시 필요했다. 가장 많이 쓰이는 AES 알고리즘을 사용하여 데이터를 암호화했다. AES가 뭔지 GPT가 준 답변이다 대칭키 암호화 알고리즘: AES는 대칭키 암호화 알고리즘입니다. 대칭키 암호화에서는 암호화와 복호화에 동일한 비밀키(대칭키)를 사용합니다. 암호화를 수행하는 동안 키와 암호문(암호화된 데이터)이 함께 사용되며, 복호화를 수행하는 경우에도 동일한 키를 사용하여 암호문을 원래의 평문(원본 데이터)으로 복원합니다. AES의 특징: AES는 안전하고 효..