/// <summary> /// 获取功能的状态 /// </summary> /// <param name="sDKOpenFunction"></param> /// <returns></returns> public bool GetSDKOpenFunctionState(SDKOpenFunction sDKOpenFunction) { bool result = false; dicFunctionState.TryGetValue(sDKOpenFunction, out result); return(result); }
/// <summary> /// 设置功能状态 /// </summary> /// <param name="function"></param> /// <param name="state"></param> void SetSDKFunctionState(SDKOpenFunction function, bool state) { if (dicFunctionState.ContainsKey(function)) { dicFunctionState[function] = state; } else { Debug.LogError($"SDK功能开放中不存在Key[{function}]"); } }
/// <summary> /// 绑定按钮 /// </summary> /// <param name="sDKOpenFunction"></param> /// <param name="buttons"></param> public void BindFunctionBtn(SDKOpenFunction sDKOpenFunction, Button[] buttons, params object[] Args) { List <Button> btns; if (!dicFunctionBtns.TryGetValue(sDKOpenFunction, out btns)) { btns = new List <Button>(); dicFunctionBtns.Add(sDKOpenFunction, btns); } foreach (var item in buttons) { //如果此功能系统自带了点击功能,则绑定功能 UnityEngine.Events.UnityAction callBack; if (dicFunctionAction.TryGetValue(sDKOpenFunction, out callBack)) { if (item is DBTVideoBtn) { ((DBTVideoBtn)item).TSonClick.AddListener(callBack); } else { item.onClick.AddListener(callBack); } } btns.Add(item); item.gameObject.SetActive(sDKOpenFunction.IsOpen()); ////视频按钮的开放做特殊处理 //if (sDKOpenFunction== SDKOpenFunction.AdsVideo) //{ // VideFlag videFlag= VideFlag.Flag1; // //对于视频按钮的显示,除了SDKOpenFunction.AdsVideo方法外 还需要审核状态进行控制,此功能只存在与IOS // if (Args != null && Args.Length > 0) // videFlag = (VideFlag)Args[0]; // item.gameObject.SetActive(sDKOpenFunction.IsOpen()); // //if (videFlag== VideFlag.Flag1) // //{ // // //视频送道具按钮特殊处理 // // //item.gameObject.SetActive(sDKOpenFunction.IsOpen() && SDKOpenFunction.DesignMode.IsOpen()); // //} // //else // //{ // // item.gameObject.SetActive(sDKOpenFunction.IsOpen()); // //} //} //else //{ //} } CheckNull(sDKOpenFunction); //ReshsdkFunctionBtnState(sDKOpenFunction); }
/// <summary> /// 刷新按钮的状态 /// </summary> /// <param name="sDKOpenFunction"></param> void ReshsdkFunctionBtnState(SDKOpenFunction sDKOpenFunction) { List <Button> btns; if (dicFunctionBtns.TryGetValue(sDKOpenFunction, out btns)) { foreach (var item in btns) { if (null != item) { item.gameObject.SetActive(sDKOpenFunction.IsOpen()); } } } }
/// <summary> /// 检查按钮是否被摧毁了 /// </summary> /// <param name="btns"></param> void CheckNull(SDKOpenFunction sDKOpenFunction) { List <Button> btns; if (dicFunctionBtns.TryGetValue(sDKOpenFunction, out btns)) { int count = btns.Count - 1; for (int i = count; i >= 0; i--) { if (null == btns[i]) { btns.RemoveAt(i); } } } }
/// <summary> /// 功能与按钮的绑定,带参数的 /// 视频按钮:参数传入视频按钮标识为 VideFlag,不填默认是VideFlag.Flag1 看视频送道具 /// </summary> /// <param name="function"></param> /// <param name="Btns"></param> public static void BindFunctionBtn(this SDKOpenFunction function, Button Btn, params object[] Args) { Button[] btns = { Btn }; DBTSDKManager.Instance.BindFunctionBtn(function, btns, Args); }
/// <summary> /// 功能与按钮的绑定 /// </summary> /// <param name="function"></param> /// <param name="Btns"></param> public static void BindFunctionBtn(this SDKOpenFunction function, params Button[] Btns) { DBTSDKManager.Instance.BindFunctionBtn(function, Btns); }
/// <summary> /// 功能是否开放 /// </summary> /// <param name="function"></param> /// <returns></returns> public static bool IsOpen(this SDKOpenFunction function) { return(DBTSDKManager.Instance.GetSDKOpenFunctionState(function)); }