분류 전체보기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. 이전 1 2 3 4 5 6 다음