102 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System.Collections.Generic;
 | |
| using UnityEngine;
 | |
| using GameAnalyticsSDK;
 | |
| using Touka.GameLogic;
 | |
| 
 | |
| public partial class StaticOnlineParams :ToukaSingletonMonoBehaviour<StaticOnlineParams>{
 | |
| 
 | |
|     public void Init () {
 | |
|         // init all params, from local saved
 | |
|         InitAllParams();
 | |
|     }
 | |
| 
 | |
|     private void InitAllParams()
 | |
|     {
 | |
|         InitAllGameParams();
 | |
|     }
 | |
| 
 | |
|     #region Save & Get value
 | |
| 
 | |
|     /// <summary>
 | |
|     /// save online value by string
 | |
|     /// </summary>
 | |
|     /// <param name="_key"></param>
 | |
|     /// <param name="_value"></param>
 | |
|     public void SaveOnlineValue2Local(string _key, string _value)
 | |
|     {
 | |
|         ToukaUtils.SavePlayerPrefsStringByKeyValue(_key, _value);
 | |
|     }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// get online value by string
 | |
|     /// </summary>
 | |
|     /// <param name="_key"></param>
 | |
|     /// <param name="_defaultValue"></param>
 | |
|     /// <returns></returns>
 | |
|     public string GetOnlineValueFromLocal(string _key, string _defaultValue)
 | |
|     {
 | |
|         string tempValue = ToukaUtils.GetPlayerPrefsStringByKey(_key, _defaultValue);
 | |
|         return tempValue;
 | |
|     }
 | |
| 
 | |
| #endregion
 | |
| 
 | |
| }
 | |
| 
 | |
| public class ToukaOnlineParam {
 | |
|     public string Key;      // key
 | |
|     public bool needUploadDirectly = true;          // 获取到在线参数后是否立刻上传,默认:是
 | |
| 
 | |
|     private string defaultValue;
 | |
|     public string DefaultValue      // value
 | |
|     {
 | |
|         get
 | |
|         {
 | |
|             string tempOnlineValue = TGTools.Instance.ConfigValueForKey(Key);
 | |
|             Debug.Log("value ----- tempOnlineValue : " + tempOnlineValue);
 | |
|             if (!string.IsNullOrEmpty(tempOnlineValue))        // 实时取一下在线参数
 | |
|             {
 | |
|                 UpdateValueByKey(tempOnlineValue);
 | |
|             }
 | |
| 
 | |
|             return defaultValue;
 | |
|         }
 | |
|         set
 | |
|         {
 | |
|             defaultValue = value;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public ToukaOnlineParam (string _key, string _defaultValue, bool _uploadDirectly = true) {
 | |
|         Key = _key;
 | |
|         DefaultValue = _defaultValue;
 | |
|         needUploadDirectly = _uploadDirectly;
 | |
|     }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// 拿到在线参数后,更新数据
 | |
|     /// </summary>
 | |
|     /// <param name="newValue"></param>
 | |
|     public void UpdateValueByKey(string newValue)
 | |
|     {
 | |
|         DefaultValue = newValue;        // 赋值
 | |
| 
 | |
|         if (needUploadDirectly)        // 若需要,则上报
 | |
|         {
 | |
|             ToukaAnalyticsManager.Instance.LogEventByUmeng(string.Format("{0}_{1}", Key, newValue));
 | |
|         }
 | |
| 
 | |
|         StaticOnlineParams.Instance.SaveOnlineValue2Local(Key, newValue);        // 本地缓存
 | |
|     }
 | |
| 
 | |
|     
 | |
|     /// <summary>
 | |
|     /// 初始化参数
 | |
|     /// </summary>
 | |
|     /// <param name="_newValue"></param>
 | |
|     public void InitValue(string _newValue)
 | |
|     {
 | |
|         DefaultValue = _newValue;        // 赋值
 | |
|     }
 | |
| }
 |