유니티에서 구글 플레이 게임 서비스를 연동한 뒤,
업적을 추가했을 때 업적을 완료할 수 있는 스크립트입니다.
1. 단일 업적, 혹은 달성도(%)를 직접 지정해줄 때
1
Social.ReportProgress(GPGSIds.achievement, 100f, null);
cs
Social.ReportProgress(업적ID, 달성도, 콜백함수); 형식이 됩니다.
여기서 업적ID는 string 형식으로 받기 때문에 직접 업적 ID를 입력해줘도 되지만,
GPGSIds.를 참고해서 ID에 맞는 이름을 가져와도 괜찮아요!
달성도는 0~100f 사이로 지정해주시면 됩니다.
잠금 상태인 업적을 0으로 해주면, 업적이 공개 상태가 되는데, 이렇게 잠금을 해제할 시
이전에 달성도를 진행해둔 게 있으면 달성도는 0이 되니 주의해주세요 (...)
잠긴 업적을 여는데에는 다른 코드가 있으니 그걸 쓰셔도 OK.
달성도에 입력하는 값이 달성도 %가 됩니다.
100f를 입력해주면 업적은 달성 상태가 되고, 33f를 입력해주면 33%가 되는 식.
2. 단일 업적, 혹은 단계별 업적을 일정 횟수만큼 증가시킬 때
1
2
3
using GooglePlayGames;
PlayGamesPlatform.Instance.IncrementAchievement(GPGSIds.achievement, 1, null);
cs
PlayGamesPlatform.Instance.IncrementAchievement(업적ID, 한 번에 증가시킬 단계 수, 콜백함수);
여기서는 using 영역에 GooglePlayGames를 꼭 추가해주셔야 합니다.
그렇지 않으면 PlayGamesPlatform을 인스턴스로 활용할 수 없어요!
위와 마찬가지로 업적ID는 string 형식으로 받기 때문에 직접 업적 ID를 입력해줘도 되지만,
GPGSIds.를 참고해서 ID에 맞는 이름을 가져와도 괜찮습니다.
단일 업적은 0-1이기때문에 한 번의 실행으로 바로 달성이 됩니다.
이건 "특정 행동마다 달성도가 오를때" 특히 유용하게 사용할 수 있어요.
예를 들면, 터치를 총 50번 해야하는 업적이 있다고 합시다.
터치를 한 번 할때 1씩 증가한다고 하면, 위와 같은 코드로 쓸 수 있겠죠.
터치를 할 때마다 IncrementAchievement를 실행하도록 입력합니다.
그럼 터치를 할 때마다 이게 실행되며 1씩 단계가 누적되고, 50번의 터치 후엔 달성이 되는것!
꼭 1이 아니어도, 숫자는 int형이라면 자유롭게 지정할 수 있으므로
한 번의 실행에 2단계, 혹은 10단계씩 오르는 단계별 업적에도 활용 가능합니다.
게임에 GPGS 넣으면서 관련 스크립트는 많이 알게 되긴 했는데..
정리를 하나도 안했네요 흑흑
이제부터 정리해야지
로그인 함수, 로그인 체크 .. 기타등등 앞으로 정리됩니다
댓글