> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hyperx.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 호환성 어댑터

> 기존 Unity/.NET 서버 SDK 스타일 코드를 HyperX 프로젝트에 연결하는 별도 어댑터를 사용합니다.

호환성 어댑터는 기존 `BackEnd` 네임스페이스 스타일 코드를 큰 폭으로 고치지 않고 HyperX Core에 연결하기 위한 별도 패키지입니다. 새 프로젝트는 기본 HyperX SDK의 `HyperX.Core`와 `PlayerSession` 사용을 권장합니다.

## 패키지 구성

Unity `Assets/Plugins`에는 두 DLL을 함께 넣습니다.

* `HyperX.BackndCompatible.netstandard2.1.dll`
* `HyperX.netstandard2.1.dll`

어댑터는 내부적으로 기본 HyperX SDK를 호출합니다. 게임 코드에서는 `BackEnd` 네임스페이스를 유지할 수 있지만, 런타임에는 기본 HyperX DLL이 필요합니다.

## 초기화

```cs theme={null}
using BackEnd;

var init = Backend.Initialize(new BackendCustomSetting
{
    clientAppID = "PROJECT_CODE",
    timeOutSec = 10
});

if (!init.IsSuccess())
{
    UnityEngine.Debug.LogError(init.ToString());
}
```

`clientAppID`에는 HyperX Console에서 만든 프로젝트 코드를 넣습니다.

## 로그인과 데이터

```cs theme={null}
var login = Backend.BMember.CustomLogin("player-id", "password");

var param = new Param();
param.Add("gold", 1200);
param.Add("stage", 3);

var saved = Backend.PlayerData.UpdateMyLatestData("save_state", param);
var loaded = Backend.PlayerData.GetMyData("save_state");
var gold = (int)loaded.FlattenRows()[0]["gold"];
```

`Param.AddCalculation`은 update 호출에서 기존 row를 읽고 값을 계산한 뒤 저장하는 방식으로 동작합니다.

```cs theme={null}
var delta = new Param();
delta.AddCalculation("gold", CalculationType.Add, 50);
Backend.PlayerData.UpdateMyLatestData("save_state", delta);
```

## 지원 범위

초기화, 회원 로그인, 유저 정보, 닉네임, 토큰 갱신, 로그아웃, 현재 유저 데이터 CRUD, 공유 데이터 조회, 차트/설정, 확률, 랭킹, 쿠폰, 우편, 공지/이벤트/정책, 푸시 디바이스, 길드, 문의 흐름을 제공합니다.

표현할 수 없는 호출은 실패처럼 보이지 않도록 `UnsupportedOperation`이 담긴 `BackendReturnObject`를 반환합니다.

## 빌드

로컬 패키지를 만들 때는 저장소에서 다음 명령을 실행합니다.

```bash theme={null}
cd dotnet-sdk-backnd-compatible
make package
```

생성된 zip 안에는 Unity `Assets/Plugins`에 복사할 DLL 묶음과 smoke sample이 포함됩니다.
