본문으로 건너뛰기

버전 업데이트 내역

버전 업데이트 내역

이전 버전(0.0.1)의 SDK 가이드를 보셨던 분들은 이 섹션에서 변경사항을 확인하세요.


v0.2.0 (2026-06-24) — 현재 버전

새로운 기능

  1. 통합 리워드 슬롯 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)는 통합 슬롯으로 대체 권장(호환 유지)
  2. 결제(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()
    • onFailPaymentFailResult(code/errMsg/txnKey/failReason) — code 로 분기
    • JS SDK가 플랫폼으로 라운드트립하여 동작 — 가용성·결과 판정은 플랫폼(결제 미제공 시 PAYMENT_UNAVAILABLE)
  3. SystemInfo, AppBaseInfoservicePlatform 필드 추가: 게임이 어느 호스트 서비스("kakaotalk" / "kakaopay" / "house")에서 실행 중인지 식별합니다.

    var info = TudadaSDK.Instance.GetSystemInfoSync();
    Debug.Log(info.servicePlatform); // "kakaotalk" | "kakaopay" | "house"

지원 종료 예정 (Deprecated)

  • CreateRewardedVideoAd / TudadaRewardedVideoAd (레거시) — wx 호환 레거시 인스턴스 API. 통합 API ShowRewardedAd() 로 대체됐으며 다음 버전에서 제거될 예정입니다. [System.Obsolete] 특성이 추가되어 사용 시 컴파일 경고가 발생합니다.

v0.1.6 (2026-05-12)

새로운 기능

  1. 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
  2. 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
  3. Login() 응답에 사용자 정보 자격증명 필드 추가

    LoginResultuserInfoPayload/userInfoSignature 필드가 추가되었습니다. 게임 서버가 시크릿키만으로 자체 검증 가능한 서명된 사용자 정보로, 서버-to-서버 통신 없이 사용자 신원을 확인할 수 있습니다.

    TudadaSDK.Instance.Login(
    onSuccess: (result) => {
    // 기존 필드 — 호환 유지
    Debug.Log(result.code + " " + result.userId);

    // 게임 서버 검증
    SendToGameServer(result.userInfoPayload, result.userInfoSignature);
    }
    );
  4. 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);
    }
    );

v0.1.5 (2026-03-30)

새로운 기능

  1. 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)

새로운 기능

  1. 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는 레거시로 유지
  2. 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
  3. 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)

새로운 기능

  1. 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)

새로운 기능

  1. SystemInfo, AppBaseInfoenvironment 필드 추가

    현재 접속 환경을 나타내는 필드가 추가되었습니다.

    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)

새로운 기능

  1. Login 결과에 userId 필드 추가

    TudadaSDK.Instance.Login(
    onSuccess: (result) => {
    Debug.Log("코드: " + result.code); // 기존
    Debug.Log("유저 ID: " + result.userId); // 새로 추가됨
    }
    );
  2. SystemInfo.wifiEnabled가 실제 값으로 변경

    이전에는 고정값이었으나, 이제 실제 Wi-Fi 활성화 상태를 반환합니다.

변경사항 (마이그레이션 필요)

  1. Unity Client 패키지 업데이트 필요

    tudada-unity-client-v0.1.0.unitypackage 이상을 다시 임포트해야 합니다. 기존 패키지를 제거하고 새 패키지를 임포트하세요.

  2. 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()을 별도 호출
    }
    );

업데이트 절차

  1. .unitypackage 파일을 임포트합니다 (기존 파일 덮어쓰기)
  2. index.html의 SDK 스크립트 버전을 업데이트합니다:
    <script src="tudadaGameSDK.0.1.0.js"></script>
  3. 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.