답변:
구현 기술 또는 디자인의 결과에 대한 관점에서 질문하고 있습니까? 어느 쪽이든, 귀하의 질문에 대한 대답은 "예"입니다.
기술 측면에서 일반적으로 말하면 코드에서 성과 이벤트에 응답하고 통계 추적 코드를 넣는 후크를 찾는 것입니다. 게임에서 이미 벌어지는 개별 이벤트가 아닌 것을 추적하는 경우 새로운 것을 추가해야 할 수도 있습니다 (예 : X 재생 시간).
사물의 디자인 측면에서, 성과는 외적 동기 부 여자이며 그것을 추가하는 것이 실제로 그것을 추구하려는 사람들을 제외하고 핵심 게임 플레이 루프에 너무 많이 참여하지는 않습니다. 그래서 그들은 상관없이 꽤 안전합니다.
shotsFired++
새로운 총알이 인스턴스화 shotsHit++
되는 부분 과 총알이 다른 플레이어에게 영향을 미치는 부분 에 연결하는 것은 매우 쉽습니다 . 총알을 쏜 사람을 추적하는 데 도움이되었습니다 (정보를 사용하여 누가 죽일 수 있는지 추적하기 때문에)
이미 기존 사람들이 좋은 답변을 추가 했으므로 발견되지 않은 상황에 답변하겠습니다.
게임 코딩을 완료하고 이제 코드 업적을 코딩하기 시작한 위치에 있고 너무 많은 변수와 카운트를 유지하고 특정 이벤트 및 그와 같은 상황에서이를 지우는 것이 매우 복잡한 것을 발견했습니다.
모든 이벤트를 수신하기 위해 항상 하나의 클래스 (바람직하게는 싱글 톤)를 작성할 수 있습니다. 이제 모든 업적을 나열하십시오. 그런 다음 추적해야하는 모든 게임 이벤트를 나열하십시오. 예를 들어 내 현재 목록은 다음과 같습니다
KILL ENEMY-걷기, 총알 PLAYER DEATH-떨어지기, 건강 ENTER_ROOM, EXIT_ROOM 등
걷기, 총알과 같은 추가 세부 사항은 매개 변수가 될 수 있습니다. 이제 해당 성과 추적 클래스에 fireEvent라는 함수가 있습니다. 이벤트를 발생시켜야하는 코드의 모든 위치를 검색하고 해당 함수를 호출하십시오. 이제 Achievements 수업에서 나머지 더러운 작업을 수행하십시오. 이는 기존 코드 및 코드 성과를 방해하지 않는 가장 안전한 방법입니다. 그것은 나를 위해 아주 빨리 해결되었습니다.