오늘은 PVP 로그인 인증 테스트 ..
기획이 나온 부분의 전투 구현은 거의 끝났기 때문에 ,
로그인 브랜치와 pvp 브랜치를 머지 하고
로그인 -> 배틀
을 구현하려고 했는데 .
서버 API 와 보안 인증등의 구현들이 모두 완료된 상황에서
우리 서버에 내 클라이언트가 보안에 막혀 접속을 못하는 일이 지속적으로 발생했다..
결국 아침 - 저녁 내내 아이폰 빌드만 하다가 ㅠ_ㅠ…
하루 다갔다.
주로 고생한 내용은
아이폰 빌드 구글 로그인 SDK 설정 방법 ( 이걸 안하면 보통 크래시&에러 남) { 구글 Oauth 에서 plist 를 받아서 xCode에 삽입해야한다 또한 info.plist 에서 url type 에 client id 를 뒤집어서 넣어줘야한다. 그리고 게임내에서 넣는 웹 클라 아이디는 자동 생성된 클라 이이디를 넣어야함 ! } ( 사실 이 부분은 지난번에도 헤맸는데 시간 낭비한 게 부끄럽다. 잘 기록해두자 )
HTTPS 통신관련 ( 이부분은 공부를 제대로 안해왔으니 … 터질 일이 터진거다 ) { www의 header 에 토큰을 필드로 넣어준다 . (token 이름을 OAuthToken 으로 했다가 token으로 했다가 해서 오류 잔치 겪음) UnityWebRequest 객체의 Get 에는 RequestBody 가 없다. (보통 Get은 없다는 말도 있던데 확실하지 않다. )
}
C# 콜백의 세계로
그래도 나름 얻은 것이 있다.
0~1년 차에는 보통 update() 문으로 모든걸 처리했다. ~초 대기는 float 하나 두고 프레임 or 시간마다 더하며 기다리는 식..
1~2년 차에는 보통 Coroutine 으로 처리했다. 우리의 코루틴! 무적의 코루틴! 이라 생각했다.
그리고 지나보니 ,
일정 시간마다 반복하는 것이 아니라면
일정 시간 후에 대기하는 것이라면 Tween 으로 해버리거나
일정 작업 후에 작동하는 것이라면
특히 통신은
콜백으로 처리하는 것이 좋다는 걸 알아냈다.
뭐 이런 식이다 .
LoginManager.instance.InvokeAfterRefresh( (user) => RequestGhostUserInfo(user, 100, InitializeDuel));
제대로 쓰지 않을 때는 감이 잘 안잡혔는데 ,
막상 써보니 “ () => “ 라는 괴상한 모양 (람다)이 매우 편리하다는 것을 깨달았다.
또한 적당히 썼을 때 코드가 매우 아름답고 직관적으로 변해서 감동..
코루틴처럼 지속적으로 연산부하를 주지 않아서 ( 이 부분은 추측이다 . 주말에 공부해 봐야겠다. )
다행이라는 생각도 든다.
비동기라는 개념에 한발짝 앞으로 간게 아닐까 ‘-‘ ?
js 만졌을 때 경험한 콜백지옥이 나를 기다릴 것 같기도 하고…
일단은 새 개념을 숙지했으니 잘 써보자 !