두가지 질문입니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 :
  • 프로젝트명 :
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

<뒤끝에서 정보 불러오기 ****정말중요합니다>

public void ShopInfoLoad () {
//본인 정보가 있는지 체크
var bro = Backend.GameData.GetMyData(_shopTableName, new Where(), 10);
_shopinDate = bro.GetInDate ();
var sm = SaveManager.Instance;

    if ( bro.GetReturnValuetoJSON ()["rows"].Count <= 0 ) {
        //새로 저장
        Param param = new Param();
        param.Add ( "Limited", $"{0},{0},{0},{0},{0},{0}" );
        param.Add ( "Dia", $"{0},{0}" );
        param.Add ( "Package", $"{0},{0},{0},{0},{0}" );
        param.Add ( "Mileage", $"{0},{0},{0}" );
        BackendReturnObject BRO = Backend.GameData.Insert(_shopTableName, param);

        if ( BRO.IsSuccess () ) {
            _shopinDate = BRO.GetInDate ();
        }
        return;
    }

    //데이터가 있다면 값을 서버에서 받아옴
    string owner_inDate = Backend.UserInDate;

    if (bro.IsSuccess () ) {
        var rows = bro.FlattenRows();
        char sp = ',';

        //리미티드 상품
        var indateLimi = rows[0]["Limited"].ToString();
        string txtLimi = indateLimi;
        string[] spstringHave = txtLimi.Split(sp);
        //로컬에 저장
        for ( int limited = 0; limited < _limitedMax; limited++ ) {
            PlayerPrefs.SetInt ( "ShopLimited" + limited, Int32.Parse ( spstringHave[limited] ) );
        }

        //다이아 상품
        var indateDia = rows[0]["Dia"].ToString();
        string txtDia = indateDia;
        string[] spstringDia = txtDia.Split(sp);
        //로컬에 저장
        PlayerPrefs.SetInt("ShopDia", Int32.Parse(spstringDia[0]));


        //패키지 상품
        var indatePack = rows[0]["Package"].ToString();
        string txtPack = indatePack;
        string[] spstringPack = txtPack.Split(sp);
        //로컬에 저장
        for ( int pack = 0; pack < _packageMax; pack++ ) {
            PlayerPrefs.SetInt("ShopPackage" + pack, Int32.Parse(spstringPack[pack]));
        }

        //마일리지 상품
        var indateMil = rows[0]["Mileage"].ToString();
        string txtMil = indateMil;
        string[] spstringMil = txtMil.Split();
        //로컬에 저장
        for ( int mil = 0; mil < _mileageMax; mil++ ) {
            PlayerPrefs.SetInt ( "ShopMileage" + mil, Int32.Parse ( spstringMil[mil] ) );
        }
    }
}

이렇게 했는데… 뭐 잘 불러와는 집니다… 근데 기기에서 앱을 지웠다가 다시 깔면 저기 데이터를 불러오는 스크립트에서 서버에 저장되어있는걸 불러와야하는데 못불러옵니다… 서버에는 잘 저장이 되어있구요… 무슨 문제일까요??

<두번째질문>
랭킹에서 score는 숫자로 된것만 가능하다 하셨는데, 몇자리까지 가능한가요?
소수점도되나요? 소수점도 된다면 소수점은 몇자리까지 가능한가요?

안녕하세요 개발자님

  1. 공유해주신 로직의 경우, 정상적인 로직으로 확인이 됩니다. 앱을 삭제하고 지웠을 때 해당 함수가 호출되는지 확인해주시고 var bro = Backend.GameData.GetMyData(_shopTableName, new Where(), 10); 또한 Debug.Log(bro)를 통해 리턴값이 어떠한 형식으로 나왔는지 확인이 필요할 것 같습니다.

  2. 랭킹을 생성할 때 선택한 컬럼의 값 (점수로 사용할 값)의 범위는 아래와 같아야 합니다.
    해당 범위를 벗어나는 값은 반올림, 반내림 되는 등 정상적으로 저장되지 않을 수 있고, SDK에서 랭킹을 조회할 때 에러가 발생할 수 있습니다.
    정수 : -9007199254740992 ~ 9007199254740992 (-2^53 ~ 2^53)
    실수 : -3.40282347E+38F ~3.40282347E+38F (float.MinValue ~ float.MaxValue)

실수는 최대 3.40282347E+38F까지 삽입이 가능하지만, 실제 숫자로 표시될 수 있는 수는 16자리까지이며 17자리의 수는 반올림이 되고, 그 이하의 수는 E+n의 형태로 표시됩니다.

123456789123456789123456789.0를 삽입할 경우 1.2345678912345679e+26 가 삽입됩니다.
79228162514264337593543950335.0(decimal.maxValue)를 삽입할 경우 7.922816251426434e+28가 삽입됩니다.