csv 리딩

 데이터 파일을 csv로 만들어서 파싱하는 스크립트를 작성했는데, 이상하게 맨 끝 행의 string을 인식을 못한다.. 약 5분간의 헤딩 끝에 각 열마다 마지막에 \r이 있다는걸 찾아내서 잘라주니 제대로 동작한다!

엑셀 -> csv 변환, C# ExcelDataReader

 엑셀파일을 ms오피스 엑셀에서 열어서 csv로 저장했더니 수식이 같이 저장되어 버려서 읽을수가 없었다.. 결국 빈 csv파일을 만들어서 복붙해서 생성했는데 깨알같이 ms Excel이 아닌 한셀(한컴오피스 엑셀)로 만들어서 복붙하면 수식까지 전부 복사가 되었다..!! ms오피스를 써야만 값만 복사가 되서 csv로 만들수가 있었다!!! + 안드로이드에서는 System.IO에 제한이 있어서 그런지 ExcelDataReader를 사용할수가 없었다.. 그냥 csv읽어오는걸 만들어야겠다

어드레서블 키값오류?

 UnityEngine.AddressableAssets.InvalidKeyException? 어드레서블 로드할때 형식안맞는것도 키값오류라고 내뱉는다는걸 새로알았다.. ex) Sprite파일을 LoadAssetAsync<String>으로 로드하면 같은 에러메세지가 뜬다..!!

GPGS v2로 플레이팹 로그인 시키기??

 약 2주간 도큐 뒤적거리고.. 포럼 뒤적거린끝에 무언가를 찾긴했다. GPGS v2에서는 GetAuth관련이 사라지고, RequestServerSideAccess로 대체되어있는데 이게 v1이랑 v2랑 반환하는게 다르다고 한다.. 반환이 다르니 기존 v1에 대응되던 여타 서비스들은 아무고토 연결이 되지 않고 저거에 맞춰서 새로 만들어줘야 한다는것인데.. 플레이팹에서는 대응방안을 제시해준게 있었다! 마소런에 정리된 이야기를 요약하자면, https://learn.microsoft.com/en-us/gaming/playfab/features/authentication/platform-specific-authentication/google-play-games-sign-in-migration-details 1. 그냥 gpgs v1써서 LoginWithGoogleAccount로 로그인시키고, 로그인할때 LinkGooglePlayGamesServicesAccount로 플레이팹에 연결시켜서 앞으로의 로그인은 LoginWithGooglePlayGamesServices로 할 수 있게 해줘라! https://learn.microsoft.com/en-us/gaming/playfab/features/authentication/platform-specific-authentication/google-play-games-sign-in-migration-fallback 2. v2로 업그레이드했을때 그전에 로그인을 하지 않아 연결이 되지 않은 유저들은 어쩔수 없이 최초 로그인시 수동으로 Google OAuth api를 호출해서 연결 시키고 그걸로 GPGS에 Link해준다! ..라고 한다.. 담주에 다시 트라이해보는걸로..

유니티 구글플레이스토어 버전체크하기!

 단순 링크 파싱해서 버전부분만 읽어오는게.. 웹 링크가 주기적으로 바뀌기에 못써먹어서 다른방법을 찾다가 발견! https://developers.google.com/unity/packages?hl=ko#play_in-app_update 쭉 밑으로 내려가다보면 Play 인앱 업데이트 라는게 있다!! sdk를 다운받아서 프로젝트에 추가해주고, https://developer.android.com/guide/playcore/in-app-updates/unity?hl=ko 지원 보면서 버전 체크 코드 긁어와주고! https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo#public-methods api 확인해서 원하는 흐름에 맞게 업데이트 방식도 구현해준다!! 나는 업데이트 체크후, appUpdateInfoResult.UpdateAvailability가 UpdateAvailable이면 팝업을 띄우고 즉시 업데이트 하게 연결해 줬다. 테스트는.. 주말에 다시 시도해봐야겠다..

망할 구글

 GPGS 11.01 (v2)로는 플레이팹이나.. 뒤끝서버에서도 아직 연동지원이 안되는관계로.. GPGS 10.14 (v1)로 다운그레이드 시켰다.. 도큐라도 잘좀 내줘 ㅠㅠ 왜 아직도 구버전이야..

플레이팹 클라우드 스크립팅 활용하기

이미지
1. 플레이팹 sdk 추가한 뒤, 스크립트 하나에 PlayFabSettings 안에 타이틀id를 넣어줍니다(using PlayFab.ClientModels 필요) 2. LoginWith~~~로 플레이팹에 로그인을 시켜줍니다!     - LoginWithCustomID 3. OnLoginSuccess - 로그인 성공시 실행할 함수     OnLoginFailure - 로그인 실패시 실행할 함수 플레이팹 대시보드 -> 자동화 -> 클라우드스크립팅 -> 수정버전(레거시) 로 들어가 줍니다. 도큐를 보니 Azure Function 서비스로 통합시키는거 같던데.. 일단은 작년에 레거시방식으로 테스트해봤던 기억이 있어서 이번엔 레거시로 진행..!! 일단 테스트용으로 기본으로 있는 함수 중 helloWorld로 감을 잡아봅시다. 주석에도 적혀있지만 args는 함수의 인자값들이고, context는 클라우드스크립트가 PlayStream에서 동작할때 추가정보들을 포함하고 있다는데.. 아직 이건 모르겠으니 패스 message 에 입력되는 값 끝에 args.text를 임의로 추가해줬습니다. 클라이언트에서 함수호출시에 text인자를 같이 전달해주면 저기에 전달가능! 이제 유니티 스크립트로 돌아와서, ExecuteCloudScript를 사용하여 아까 수정한 함수명(helloWorld), 전달할 인자(text)를 입력하고, GeneratePlayStreamEvent를 true로 설정해줍니다. GeneratePlayStreamEvent를 true로 설정하면 플레이팹 대시보드 PlayStream모니터에서 함수를 누가 언제 호출했는지 기록을 확인 할 수 있게 해줍니다! ExecuteCloudScript는 아까 로그인과 마찬가지로 성공했을때와 실패했을때의 함수를 같이 정의해주어야 합니다. 성공했을때, 만약 정의한 함수에서 return되는 값이 있었다면 json으로 받아온 데이터에서 return한 변수명(위의 클라우드 스크립트에서 return에 ...