요구 사항
- Android OS: 4.0.3 이상 (Unity 2017.x.x에서 빌드 시 4.1 이상 )
- JDK: Java SE Development Kit 7 Update 29 이상
- Android SDK: r23 이상
- Eclipse: 3.6 이상
- iOS SDK: 7.0 이상
- Xcode: 7.0 이상
- Unity3D: 4.6.5f 이상
개발 환경
- Unity3D 4.6.5f 이상
- Eclipse (Indigo 또는 최신 버전) 설치
- Android SDK (v4.0.3 이상) 설치
- Xcode 7.0 이상
- ADT Plugin for Eclipse (ADT 18.0.0 이상) 설치
프로젝트 실행
Hive for Unity3D를 적용할 Unity 프로젝트를 실행한다.
Import
제공된 unitypackage 파일을 더블 클릭하여 모두 Import 한다.
Hive 적용하기
Hive for Unity3D는 Unity3D 4.6.5f, Android 4.0.3 이상에서 적용되어야 한다.
코딩에 들어가기에 앞서
Hive는 result delegate 방식과 completion handler 방식을 모두 지원하고 있다.
아래의 설명은 편의상 result delegate 방식으로 설명하고 있으나, 게임 스튜디오에서 필요에 따라 completion handler 방식으로 구현할 수 있다.
Completion Handler만 사용해도 무방하지만 InappDescription 같은 정보의 경우 Initalize 함수 요청 시점에 Result Delegate로 들어오는 응답이다. 그렇기 때문에 InApp Description 정보를 받아 처리하고 싶다면 Result Delegate에서 처리할 수 밖에 없게 된다.
Result delegate
API 결과를 통지 받을 result delegate를 등록한다.
delegate에는 요청에 대한 응답이 오는 것이며, 여기서 요청에 대한 성공 실패 여부 및 요청 후 필요한 추가 작업을 수행하면 된다.
C2SModuleSocial_SetCommonResultDelegate는 앱이 실행될 때 처음 한번만 호출하면 된다.
C2SModuleResult는 C2SModuleSocial_SetCommonResultDelegate와 같은 코드에서 구현하면 된다.
C2SModuleSocial_SetCommonResultDelegate와 C2SModuleResult는 아래 샘플 코드를 복사해 필요한 부분을 구현해서 사용하면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 |
C2SModule.Social.SetCommonResultDelegate(ResultDelegate); static void ResultDelegate(Api api, Parameter arg, Error error) { switch(api) { /** Hive 초기화 */ case Api.Social_Initialize: break; /** 소셜 뷰 출력 */ case Api.Social_Show: break; /** 세션 정보 */ case Api.Sns_Session: break; /** Hive 로그인 */ case Api.Sns_Login: break; /** Hive 로그아웃 */ case Api.Sns_Logout: break; /** Hive 탈퇴 - deprecated */ case Api.Sns_Unregister: break; /** 유저 정보 요청 */ case Api.Sns_User: break; /** 친구 정보 요청 */ case Api.Sns_Friends: break; /** 메시지 보내기 */ case Api.Sns_Message: break; /** sns 포스팅 */ case Api.Sns_Post: break; /** sns 뷰 출력 */ case Api.Sns_Show: break; /** inapp 구매 복구 */ case Api.Inapp_Restore: break; /** inapp 구매 요청 */ case Api.Inapp_Purchase: break; /** inapp 구매 완료 */ case Api.Inapp_Finish: break; /** inapp 상품 정보 */ /** 주의 : Social_Initialize 호출 시 전달 됩니다. */ case Api.Inapp_Description: break; /** push 푸시 등록 */ case Api.Push_Register: break; /** push 푸시 제거 */ case Api.Push_Unregister: break; /** push 푸시 옵션 */ case Api.Push_Description; break; /** promotion 뷰 출력 */ case Api.Promotion_Show: break; /** Inapp 업데이트 */ case Api.Inapp_Updated: break; /** PGS 로그인 */ case Api.Sns_PGSLoginProc: break; /** Lebi 잔액 */ case Api.Inapp_RequestBalance: break; /** 트래킹 이벤트 보내기 */ case Api.Tracking_SendEvent: break; /** 트래킹 이벤트 SetEnable */ case Api.Tracking_SetEnable: break; /** promotion 뷰 정보 출력 */ case Api.Promotion_Info: break; /** interwork 시작 */ case Api.Interwork_Start: break; /** interwork 끝 */ case Api.Interwork_Delegate: break; /** promotion 집객 정보 출력 */ case Api.Promotion_Acquisition: break; /** Hive IAP 2.0 초기화 */ case Api.HiveIAP_Initialize: break; /** Hive IAP 2.0 정보얻기 */ case Api.HiveIAP_Info: break; /** Hive IAP 2.0 정보보기 */ case Api.HiveIAP_Show: break; /** Hive IAP 2.0 구매하기 */ case Api.HiveIAP_Purchase: break; /** Hive IAP 2.0 구매복구 */ case Api.HiveIAP_Restore: break; /** 유저 인게이지 스킴 진행 */ case Api.Engagement_ProcessScheme: break; /** 유저 인게이지 이벤트 불러오기 */ case Api.Engagement_GetEvents: break; /** 유저 인게이지 쿠폰 소모 */ case Api.Engagement_ConsumeCoupon: break; /** 유저 인게이지 시작 */ case Api.Engagement_Start: break; /** 유저 인게이지 끝 */ case Api.Engagement_End: break; /** 공지 팝업 출력 */ case Api.Social_Info: break; /** User Engagement GameScheme */ case Api.Engagement_GameScheme: break; /** Promotion2.0 뷰 출력 */ case Api.HivePromotion_Show: break; /** Promotion2.0 뷰 정보 출력 */ case Api.HivePromotion_Info: break; /** Promotion2.0 오퍼월 상태값 출력 */ case Api.HivePromotion_GetOfferwallState: break; /** inapp 원격 구매 상품 정보 요청 */ case Api.Inapp_CheckPromotePurchase: break; /** Hive IAP 원격 구매 상품 정보 요청 */ case Api.HiveIAP_CheckPromotePurchase: break; /** Promotion Companion 요청 */ case Api.Promotion_Companion: break; /** Promotion Youtube Playback */ case Api.Promotion_Playback: break; /** HivePromotion Youtube Playback */ case Api.HivePromotion_Playback: break; default: break; } } |