Block 삭제하기 목표
Block 삭제하는 방법을 생각해봤고, 기존에 만들었던 TestSaveLocation에다가 List를 추가해서
마우스 버튼을 누르는 상태일 때 그 gameObject를 저장하는 SaveBlock이라는 메서드를 만들었고
마우스 버튼을 뗀 상태일 때 저장한 gameObject를 삭제하는 DestroyBlock이라는 메서드를 만들었다.
처음에는 TestSaveLocation에 row와 col값을 저장했으니 거기서 저장과 삭제 처리를 해야지 생각하고
이렇게 TestSaveLocation에다가 메서드를 만들어서 TestMain에서 마우스버튼을 누르고있을 때 SaveBlock을 눌러서 데이터를 저장하고 DestroyBlock으로 데이터를 삭제시키는 메서드를 불러왔다.
오류 발생
근데 계속 이렇게 마우스를 누르는 상태에서 마지막 block만 삭제되는 현상이 발생했다.
왜 그럴까 고민하고 있었는데
생각해보니까 TestSaveLocation 스크립트는 각자의 gameObject의 스크립트로 박혀있어서 Destroy(this.listBlock[i]);를 해도 결국에는 내가 마지막에 찍었던 gameObject가 가지고있는 gameObject를 계속 for문으로 반복해서 Destroy하는 것이었다.
오류 해결
그래서 TestMain에다가
마우스 클릭하고 있을 때 저장과 삭제 메서드를 넣어줘서 hit.collider.gameObject를 직접 다 list에 추가하였다.
그랬더니 내가 마우스버튼을 누르고있을 때 저장하고 마우스를 떼면 삭제가 잘되었다.
'워리어 콤보 모작 개발일지' 카테고리의 다른 글
워리어콤보 개발일지 - 뒤로 갈 때 "일치함" 콘솔창에 띄우기 (0) | 2023.09.19 |
---|---|
워리어콤보 개발일지 - Stack, LineRenderer (0) | 2023.09.18 |
워리어콤보 개발일지 - Block 인식하기 (0) | 2023.09.16 |
워리어콤보 개발일지 - 좌표찍기 (0) | 2023.09.16 |
워리어콤보 개발일지 - Test [보드생성] (0) | 2023.09.15 |