hch
2026-02-13 8583cd2ad3b033b60eca94ecb10f5b2d8256396c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
using System;
using System.Collections.Generic;
using UnityEngine;
public class SettingDataManager : GameSystemManager<SettingDataManager>
{
    public override void Init()
    {
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEventOnRelogin;
    }
 
    public override void Release()
    {
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeEventOnRelogin;
    }
 
    private void OnBeforePlayerDataInitializeEventOnRelogin()
    {
        settingDataDict.Clear();
    }
 
    public event Action OnUpdateSettingDataEvent;
    Dictionary<int, string> settingDataDict = new Dictionary<int, string>();
 
    public bool TryGetSettingData(int keyNum, out string setData)
    {
        return settingDataDict.TryGetValue(keyNum, out setData);
    }
 
    public Dictionary<int, string> GetSettingData()
    {
        return settingDataDict;
    }
 
    public void UpdateSettingData(HA131_tagSCSettingDataInfo pack)
    {
        if (pack == null || pack.SettingDataList.IsNullOrEmpty())
            return;
        for (int i = 0; i < pack.SettingDataList.Length; i++)
        {
            var info = pack.SettingDataList[i];
            settingDataDict[info.KeyNum] = info.SetData;
        }
        OnUpdateSettingDataEvent?.Invoke();
    }
 
    public void ClearSettingData(int keyNum)
    {
        SendSettingData(keyNum, string.Empty);
    }
 
    public void SendSettingData(SettingDataKeyNum keyNum, string setData)
    {
        SendSettingData((int)keyNum, setData);
    }
 
    public void SendSettingData(int keyNum, string setData)
    {
        // 检查数据长度是否超过byte最大值
        if (setData.Length > byte.MaxValue)
        {
            Debug.LogError($"设置数据长度({setData.Length})超过byte最大值({byte.MaxValue})");
            return;
        }
        CA131_tagCSSettingData pack = new CA131_tagCSSettingData();
        pack.KeyNum = (byte)keyNum;
        pack.SetData = setData;
        pack.DataLen = (byte)setData.Length;
        GameNetSystem.Instance.SendInfo(pack);
    }
 
}
public enum SettingDataKeyNum
{
    TimingGiftType = 1,
}