본문 바로가기

분류 전체보기32

2023. 09. 12 x 데이터 삭제 로직 데이터를 삭제하는 기능을 넣던 중 오류가 발생했다. // DataController Script public void DeleteGameData() { while(File.Exists(FilePath)) { File.Delete(FilePath); } GameObject.Find("GameController").GetComponent().ExitGame(); } 삭제 시 해당 루트에 존재하는 파일을 삭제하고 게임을 종료시키는 로직인데 로그를 찍어봐도 내 생각대로 잘 작동하고 있었다. 하지만, 정작 다시 게임을 실행시키면 이전 데이터를 로드해서 잘만 돌아간다. 분명히 데이터를 삭제했는데 삭제가 안 된 것이다. 게임을 종료하는 코드를 지우고 실행해 보니 문제없이 원하는 대로 돌아갔다. 따라서 데이터 삭제 시.. 2023. 10. 10.
2023. 09. 06 x ZoomIn 실패 게임 내 마지막 기능인 집중해서 볼 캐릭터를 선택하고 또 줌인하는 기능을 구현하려 했으나 실패했다. 우선 캐릭터를 선택하는 것은 기존에 구현해 뒀던 작업을 요청한 오브젝트를 저장하는 변수로 쉽게 구현할 수 있었다. 또한, 현재 선택된 캐릭터가 무엇인지 알기 쉽도록 캐릭터 머리 위에 선택된 캐릭터를 알려주는 화살표를 추가했으며 이 선택을 위해 게임 자체는 2D이지만 게임 내 캐릭터는 3D처럼 움직이기 때문에 캐릭터의 4방향에 모두 버튼을 달아서 선택될 수 있도록 해주어야 했다. 이때 버튼들이 앞을 향하고 있어야 제대로 클릭이 이루어지기 때문에 회전 방향에 맞추어 X, Y, Z 값을 수정해 주어야 했다. 하지만 추가로 진행한 줌인 구현에서 해당 위치를 비추는 카메라의 좌푯값을 선택된 캐릭터의 위치로 바꾸고 .. 2023. 10. 10.
2023. 09. 05 x 부자연스러운 캐릭터 이동 및 데이터 관리 캐릭터가 이동할 때 좌상단을 보면서 좌하단으로 이동한다든지 우하단을 보면서 우상단으로 이동하는 버그가 존재했다. 캐릭터를 이동시킬 때 transform.Translate() 함수를 사용했는데 캐릭터의 자연스러운 이동 방향을 구현하고자 했다. 이때 캐릭터가 향하는 곳을 바라볼 수 있도록 회전시켜 주었는데 이 때문에 캐릭터가 바라보는 방향을 기준으로 X, Y, Z 축이 뒤틀려 통상적인 생각으로는 왼쪽으로 가기 위해 -x 지만 x, z 모두 활용해야 하는 경우가 발생한 것이다. 이를 해결해 주기 위해서 x, y, z축으로 모두 하나씩 이동시켜 보며 적절한 이동 방향을 체크해서 넣어주어야 했다. // Character Script // 우하 o case 5: transform.Translate(0.005f * .. 2023. 10. 10.
2023. 08. 30 x One Scene & Two Camera 본래는 Game Scene과 Caffe Scene을 구분 지어서 사용하려고 했다. Game Controller와 Data는 DontDestoryOnLoad를 통해서 삭제되지 않지만 각 Scene을 이동하면서 Canvas에 붙어있던 다른 오브젝트들은 모두 파괴된다. 따라서 오브젝트들의 초기 설정들이 파괴되어 버리는데 이를 해결할 방법을 몇 가지 떠올렸다. 1. 모두 DontDestoryOnLoad를 사용해 파괴하지 않고 비활성화인 상태로 두며 Scene을 전환한다. 2. Scene 전환 대신 화면으로 사용할 캔버스 두 개와 카메라 두 개를 사용해 캔버스 전환만으로 이를 대체한다. 3. 모든 오브젝트를 static 변수를 활용한 Singleton 기법을 사용해 본다. 1번은 너무 성능적으로 좋지 않을 것 같.. 2023. 10. 10.
2023. 08. 27 x Reflection // Data Script // 강화 데이터 public bool EnhanceClickPower = false; public bool ActivateStack = false; public bool FirstEnhanceStack = false; public bool SecondEnhanceStack = false; public bool ThirdEnhanceStack = false; // 업적 데이터 public bool FirstCharacter = false; public bool AcquireFirstCharacter = false; public bool GetFirstPerson = false; public bool AcquireGetFirstPerson = false; public bool F.. 2023. 10. 10.
2023. 08. 22 x 스크립트 분리 본래 Button Controller를 따로 빼서 사용하려 했으나 이 또한 Controller이기 때문에 Game Controller에서 통합 관리하는 게 좋을 것으로 보였다. 하지만, 너무 많은 버튼의 기능들을 Game Controller의 함수로 표현하고 관리하는 건 좋지 않아 보였고 따라서 해당 기능들을 Button Controller라는 다른 스크립트로 분리하기로 했다. 새롭게 추가될 강화, 업적 시스템의 경우에도 따로 스크립트를 만들고 관리 자체는 Game Controller 오브젝트에 추가해 사용하기로 했다. 2023. 10. 10.