1.初始化
SDK會在Unity啟動前就初始化好,但是又有Init的接口,所以這里通過
StarkSDK.s_ContainerEnv 判斷有沒有初始化,沒有的話就手動初始化
public override void Init(string code, Action callback){Debug.Log("初始化抖音SDK");if (StarkSDK.s_ContainerEnv == null){Debug.LogError("沒有初始化完畢,設置回調");//base.Init(code, callback);//設置回調StarkSDK.API.SetContainerInitCallback((env) =>{Debug.Log("抖音sdk init finish");//callback?.Invoke();Login(callback);});StarkSDK.Init();}else{Debug.Log("已經初始化了,直接回調");Login(callback);//callback?.Invoke();}}
2.登錄
登錄后可以獲得一系列玩家數據,anonymousCode可以作為玩家的唯一ID
登錄之后云函數才能獲得對應的玩家OpenID
public void Login(Action action){StarkSDK.API.GetAccountManager().Login((code, anonymousCode, isLogin) =>{Debug.Log($"玩家已經登錄:{code}, {anonymousCode}, {isLogin}");isLogined = isLogin;unionID = anonymousCode;action?.Invoke();}, (errormsg) =>{Debug.LogError($"玩家登錄失敗:{errormsg},用戶無法使用存檔");isLogined = false;unionID = SystemInfo.deviceUniqueIdentifier;action?.Invoke();}, false);}
3.設置剪貼板
public override void Copy2ClipBoard(string val){//base.Copy2ClipBoard(val);StarkSDK.API.GetStarkClipboard().SetClipboardData(val, (success, str) =>{if (!success) Debug.LogError("復制到剪貼版失敗");});}
4.設置前后臺切換監聽
public override void SetFocusListener(Action<bool> onFocus){//base.SetFocusListener(onFocus);StarkSDK.API.GetStarkAppLifeCycle().OnShowWithDict = (param) =>{onFocus(true);};StarkSDK.API.GetStarkAppLifeCycle().OnHide = () =>{onFocus(false);};}
5.獲取玩家信息
public override void GetPlayerName(Action<string> callback){base.GetPlayerName(callback);StarkSDK.API.GetAccountManager().GetScUserInfo((ref ScUserInfo user) =>{Debug.Log($"獲取到玩家名:{user.nickName}");SystemHelper.PlayerInfo.GetPlayer().SetPlayerName(user.nickName);}, (error) =>{Debug.Log($"獲取玩家名字失敗:{error}");});}
6.震動
WebGL下,傳入參數大于400的話就是長震動,否則就是短震動
static long[] virbrateLongParam = new long[] { 9999 };public override void VirbrateLong(){//base.VirbrateLong();StarkSDK.API.Vibrate(virbrateLongParam);}static long[] virbrateShortParam = new long[] { 10 };public override void VirbrateShort(){//base.VirbrateLong();StarkSDK.API.Vibrate(virbrateShortParam);}
7.云函數調用
云函數相關可以詳見:【Unity】Unity項目轉抖音小游戲(二)云數據庫和云函數
public override void CallCloudFunction(string functionName, string json, Action<string> success, Action<string> fail){StarkSDK.API.GetStarkDouyinCloudManager().CallContainer(DYCloudID,DYServerID,functionName,new StarkDouyinCloud.Options(){Method = "POST",Data = json},(res) =>{success?.Invoke(res.Data);Debug.Log($"云函數{functionName}成功:{res.Data}");},(res) =>{fail?.Invoke(res..ErrMsg);Debug.LogError($"云函數:{res.StatusCode}失敗,{res.ErrMsg}");}); ;}