버전 업데이트 내역
버전 업데이트 내역
이전 버전(0.0.1)의 SDK 가이드를 보셨던 분들은 이 섹션에서 변경사항을 확인하세요.
v0.2.0 (2026-06-24) — 현재 버전
새로운 기능
-
통합 리워드 슬롯 API 추가: 보상형 비디오·배너·공유를 하나의 슬롯 모델로 통합했습니다. 활성 슬롯을 조회해 렌더링하고, 사용자 탭 시
ShowRewardedAd(slot)으로 실행합니다.TudadaSDK.Instance.GetRewardedAdSlots(
onSuccess: res =>
{
if (res.slots.Length == 0) return;
var slot = res.slots[0];
// slotData 는 기본 video/share 슬롯에서 null 일 수 있으니 접근 전 체크
TudadaSDK.Instance.ShowRewardedAd(slot,
onSuccess: r => { if (r.isEnded) GiveReward(); });
});- 신규:
GetRewardedAdSlots(...)/GetRewardedAdSlot(slotId, ...) ShowRewardedAd(slot)오버로드 추가 — action(REWARD_VIDEO/BANNER/SHARE)을 플랫폼이 자동 디스패치- 새 타입:
RewardedAdSlot,RewardSlotData - 기존 배너 API(
GetAvailableBannerIds/GetBanner/RunBannerAction)는 통합 슬롯으로 대체 권장(호환 유지)
- 신규:
-
결제(Payment) API 추가: 게임 내 상품 구매 API가 추가되었습니다. 게임은
productId로만 구매하며, 결제 수단·가격·검증·지급은 플랫폼이 처리합니다.TudadaSDK.Instance.payment.GetProducts(
onSuccess: res => { /* res.products */ },
onFail: err => Debug.LogError(err.code)); // PaymentFailResult — code 로 분기payment.GetProducts()/GetProduct()/Purchase()/GetTransaction()onFail은PaymentFailResult(code/errMsg/txnKey/failReason) —code로 분기- JS SDK가 플랫폼으로 라운드트립하여 동작 — 가용성·결과 판정은 플랫폼(결제 미제공 시
PAYMENT_UNAVAILABLE)
-
SystemInfo,AppBaseInfo에servicePlatform필드 추가: 게임이 어느 호스트 서비스("kakaotalk"/"kakaopay"/"house")에서 실행 중인지 식별합니다.var info = TudadaSDK.Instance.GetSystemInfoSync();
Debug.Log(info.servicePlatform); // "kakaotalk" | "kakaopay" | "house"
지원 종료 예정 (Deprecated)
CreateRewardedVideoAd/TudadaRewardedVideoAd(레거시) — wx 호환 레거시 인스턴스 API. 통합 APIShowRewardedAd()로 대체됐으며 다음 버전에서 제거될 예정입니다.[System.Obsolete]특성이 추가되어 사용 시 컴파일 경고가 발생합니다.
v0.1.6 (2026-05-12)
새로운 기능
-
Banner Ad API 추가 (슬롯 모델): 게임이 슬롯별로 배너 이미지를 받아 자체 렌더링하고, 사용자 탭 시 액션을 플랫폼에 위임하는 API가 추가되었습니다.
// 1) 활성 배너 슬롯 ID 목록
TudadaSDK.Instance.GetAvailableBannerIds(
onSuccess: (result) => Debug.Log("슬롯: " + string.Join(",", result.bannerIds))
);
// 2) 슬롯에 매칭되는 배너 데이터
TudadaSDK.Instance.GetBanner("main_menu_top",
onSuccess: (result) => {
if (result.banner != null) RenderBanner(result.banner.imageUrl);
}
);
// 3) 사용자 탭 시 액션 위임 (보상 지급은 게임 자체 처리)
TudadaSDK.Instance.RunBannerAction("main_menu_top");bannerId는 게임이 정의한 슬롯 이름을 겸함RunBannerAction은 success/fail 신호만 전달 (보상 지급은 게임이 자체 처리)- 상세 가이드: Ad API → Banner Ad
-
TudadaSDK.GameAction액션 로깅 API 추가 (Phase 1): 게임 라이프사이클 액션을 fire-and-forget으로 플랫폼에 송신합니다.// 게임 시작
TudadaSDK.Instance.GameAction.Start();
// 게임 클리어
TudadaSDK.Instance.GameAction.Complete(new GameActionCompleteOption {
payload = new GameActionPayload { score = 1200, level = 5 }
});
// 게임 종료 (사유)
TudadaSDK.Instance.GameAction.Exit(new GameActionExitOption {
payload = new GameActionPayload { reason = "USER_QUIT" }
});GameAction.Start(option?)/Complete(option)/Exit(option)— 라이프사이클 액션 송신- 호출은 fire-and-forget으로 처리되며, 다운스트림 라우팅은 플랫폼이 담당
- 상세 가이드: GameAction API
-
Login()응답에 사용자 정보 자격증명 필드 추가LoginResult에userInfoPayload/userInfoSignature필드가 추가되었습니다. 게임 서버가 시크릿키만으로 자체 검증 가능한 서명된 사용자 정보로, 서버-to-서버 통신 없이 사용자 신원을 확인할 수 있습니다.TudadaSDK.Instance.Login(
onSuccess: (result) => {
// 기존 필드 — 호환 유지
Debug.Log(result.code + " " + result.userId);
// 게임 서버 검증
SendToGameServer(result.userInfoPayload, result.userInfoSignature);
}
);- 기존 응답 필드(
code,userId,errMsg,errCode)는 그대로 보존 - 상세 가이드: Auth API → 사용자 정보 자격증명
- 기존 응답 필드(
-
GetUserInfo()응답을 Tudada-fit으로 reshape (Breaking change)GetUserInfoResult에서 wx 호환 4필드(encryptedData/iv/signature/rawData)를 제거하고, login과 동일한 자격증명(userInfoPayload/userInfoSignature)을 반환하도록 정리했습니다.withCredentials파라미터도 함께 제거되어GetUserInfo(onSuccess, onFail)시그니처로 단순화되었습니다.// before (v0.1.5)
TudadaSDK.Instance.GetUserInfo(withCredentials: true,
onSuccess: (result) => {
// result.encryptedData/iv/signature는 mock 응답
}
);
// after (v0.1.6)
TudadaSDK.Instance.GetUserInfo(
onSuccess: (result) => {
Debug.Log(result.userInfo.nickName);
SendToGameServer(result.userInfoPayload, result.userInfoSignature);
}
);- 상세 가이드: Auth API → GetUserInfo
v0.1.5 (2026-03-30)
새로운 기능
-
ShareForReward API 추가: 공유 완료 시 보상을 지급하는 API가 추가되었습니다.
TudadaSDK.Instance.ShareForReward(
url: "https://example.com/share", // 선택
onSuccess: (result) => {
if (result.rewarded) Debug.Log("공유 완료 — 보상 지급");
},
onFail: (error) => Debug.LogError($"공유 실패: {error}")
);ShareForReward(url, onSuccess, onFail): 공유 + 보상 처리- 공유 처리는 플랫폼이 자동으로 수행
필요 파일:
- Game SDK:
tudadaGameSDK.0.1.5.js - Unity Client:
tudada-unity-client-v0.1.5-hotfix0420.unitypackage
v0.1.4 (2026-03-18)
새로운 기능
-
ShowRewardedAd API 추가: 보상형 광고를 한 번의 호출로 로드부터 표시까지 처리합니다.
TudadaSDK.Instance.ShowRewardedAd("your-ad-unit-id",
onSuccess: (result) => {
if (result.isEnded) Debug.Log("시청 완료 — 보상 지급");
},
onFail: (error) => Debug.LogError($"광고 실패: {error.errMsg}")
);ShowRewardedAd(adUnitId, onSuccess, onFail): 로드 + 표시 일괄 처리- 로딩 UI, 재시도, 실패 팝업을 플랫폼이 자동 처리
CreateRewardedVideoAd는 레거시로 유지
-
CheckFeature API 추가: 특정 API가 현재 플랫폼에서 지원되는지 사전에 확인할 수 있습니다.
TudadaSDK.Instance.CheckFeature("startAccelerometerSensor",
onSuccess: (result) => Debug.Log($"지원됨: {result.apiName}"),
onFail: (result) => Debug.Log($"미지원: {result.status}")
);CheckFeature(apiName, onSuccess, onFail): API 지원 여부 확인CheckFeatureStatus:supported,unknown_api,version_required,platform_unsupported,device_unsupported,permission_denied
-
LaunchOptions API 추가: 게임 실행 시 전달된 쿼리 파라미터 및 리퍼러 정보를 조회할 수 있습니다.
TudadaLaunchOptions options = TudadaSDK.Instance.GetLaunchOptions();
Debug.Log("쿼리 JSON: " + options.query);GetLaunchOptions(): 런치 옵션 동기 조회query는 JSON 문자열 (서드파티 JSON 라이브러리로 파싱 필요)
필요 파일:
- Game SDK:
tudadaGameSDK.0.1.4.js - Unity Client:
tudada-unity-client-v0.1.4.unitypackage
v0.1.3 (2026-02-26)
새로운 기능
-
Accelerometer API 추가:
StartAccelerometerSensor(),StopAccelerometerSensor(),OnAccelerometerChange이벤트가 추가되었습니다.TudadaSDK.Instance.OnAccelerometerChange += (res) => {
Debug.Log($"X: {res.x}, Y: {res.y}, Z: {res.z}");
};
TudadaSDK.Instance.StartAccelerometerSensor(
sensitivity: AccelerometerSensitivity.normal,
onSuccess: (result) => Debug.Log("센서 시작 완료")
);
TudadaSDK.Instance.StopAccelerometerSensor();- XYZ 축 기반 가속도 데이터 수신
- 민감도 기반 제어:
sensitive|normal|insensitive - 플랫 API 패턴:
StartAccelerometerSensor(),StopAccelerometerSensor(),OnAccelerometerChange - Unity Editor에서
Input.acceleration시뮬레이션 지원
필요 파일:
- Game SDK:
tudadaGameSDK.0.1.4.js - Unity Client:
tudada-unity-client-v0.1.4.unitypackage
v0.1.2 (2026-02-26)
새로운 기능
-
SystemInfo,AppBaseInfo에environment필드 추가현재 접속 환경을 나타내는 필드가 추가되었습니다.
SystemInfo info = TudadaSDK.Instance.GetSystemInfoSync();
Debug.Log(info.environment); // "prod" 또는 "dev"
AppBaseInfo appInfo = TudadaSDK.Instance.GetAppBaseInfo();
Debug.Log(appInfo.environment); // "prod" 또는 "dev"값 설명 "prod"프로덕션 환경 "dev"개발 환경
필요 파일:
- Game SDK:
tudadaGameSDK.0.1.2.js - Unity Client:
tudada-unity-client-v0.1.2.unitypackage
v0.1.1 (2026-02-20)
- 내부 개선 사항 적용 (게임 코드 변경 불필요)
v0.1.0 (2026-02-06)
새로운 기능
-
Login결과에userId필드 추가TudadaSDK.Instance.Login(
onSuccess: (result) => {
Debug.Log("코드: " + result.code); // 기존
Debug.Log("유저 ID: " + result.userId); // 새로 추가됨
}
); -
SystemInfo.wifiEnabled가 실제 값으로 변경이전에는 고정값이었으나, 이제 실제 Wi-Fi 활성화 상태를 반환합니다.
변경사항 (마이그레이션 필요)
-
Unity Client 패키지 업데이트 필요
tudada-unity-client-v0.1.0.unitypackage이상을 다시 임포트해야 합니다. 기존 패키지를 제거하고 새 패키지를 임포트하세요. -
CheckSession콜백 결과 타입 변경// 0.0.1 — onSuccess에 로그인 정보가 포함되었음
TudadaSDK.Instance.CheckSession(
onSuccess: (result) => {
// result에 code, userId 등 포함
}
);
// 0.1.0 이후 — onSuccess는 일반 결과만 포함
TudadaSDK.Instance.CheckSession(
onSuccess: (result) => {
// result.errMsg만 포함
// 로그인 정보가 필요하면 Login()을 별도 호출
}
);
업데이트 절차
- 새
.unitypackage파일을 임포트합니다 (기존 파일 덮어쓰기) index.html의 SDK 스크립트 버전을 업데이트합니다:<script src="tudadaGameSDK.0.1.0.js"></script>CheckSession콜백에서 로그인 정보를 사용하고 있었다면Login으로 분리합니다
v0.0.1 (2026-02-02) — 최초 릴리즈
최초 릴리즈 버전입니다. 다음 API가 포함되었습니다:
- Auth API (Login, CheckSession, GetUserInfo)
- Storage API (Set/Get/Remove/Clear Storage + Sync 버전)
- TudadaStore API (클라우드 스토리지)
- System API (GetSystemInfoSync, GetWindowInfo, GetDeviceInfo 등)
- Device API (진동, 키보드, 클립보드)
- Ad API (보상형 비디오 광고)
- Lifecycle API (OnShow, OnHide, ExitMiniProgram, RestartMiniProgram)
Copyright 2026 Tudada. All rights reserved.