三国卡牌客户端基础资源仓库
yyl
2026-03-28 9c4c6133cf38c54b564f94ec3c2b26c8aaf1c817
Merge remote-tracking branch 'origin/master' into h5version
4个文件已删除
7个文件已修改
4个文件已添加
460 ■■■■ 已修改文件
Assets/Editor/ConfigGen/ConfigGenerater.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Keystore/xmplaygame.keystore 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Keystore/xmplaygame.keystore.meta 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/SpritePacking/SpriteSettings.asset 242 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/ClientPackage.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/UIComponent/GradientTextEditor.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/VersionConfigs/Versions.txt 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Common/AotSdkUtility.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Common/AotSdkUtility.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Launch.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Manager/LocalResManager.cs 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so.meta 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/libs/x86/liblzma.so 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/libs/x86/liblzma.so.meta 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/ConfigGen/ConfigGenerater.cs
@@ -243,7 +243,7 @@
        sb.AppendLine("            LoadConfigByType(configType);");
        sb.AppendLine("            sw.Stop();");
        sb.AppendLine("#if UNITY_EDITOR");
        sb.AppendLine("            if (sw.ElapsedMilliseconds >= 100)");
        sb.AppendLine("            if (sw.ElapsedMilliseconds >= 500)");
        sb.AppendLine("            {");
        sb.AppendLine("                Debug.LogError($\"加载配置 {configType.Name} 耗时较长: {sw.ElapsedMilliseconds} ms\");");
        sb.AppendLine("            }");
@@ -436,7 +436,7 @@
        sb.AppendLine();
        sb.AppendLine("            sw.Stop();");
        sb.AppendLine();
        sb.AppendLine("            if (sw.ElapsedMilliseconds >= 100)");
        sb.AppendLine("            if (sw.ElapsedMilliseconds >= 500)");
        sb.AppendLine("            {");
        sb.AppendLine("                Debug.LogError($\"[自检] 加载配置 {configType.Name} 耗时较长: {sw.ElapsedMilliseconds} ms\");");
        sb.AppendLine("            }");
Assets/Editor/Keystore/xmplaygame.keystore
Binary files differ
Assets/Editor/Keystore/xmplaygame.keystore.meta
New file
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6409aac44eb1e9b479e131a8da1e8335
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor/SpritePacking/SpriteSettings.asset
@@ -1377,3 +1377,245 @@
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
  - folderName: Review
    blockOffset: 1
    enableRotation: 0
    enableTightPacking: 0
    padding: 4
    readable: 0
    generateMipMaps: 0
    sRGB: 1
    filterMode: 1
    platformSettings:
    - name: Standalone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 4
    - name: Android
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
    - name: iPhone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
  - folderName: HeroSkin
    blockOffset: 1
    enableRotation: 0
    enableTightPacking: 0
    padding: 4
    readable: 0
    generateMipMaps: 0
    sRGB: 1
    filterMode: 1
    platformSettings:
    - name: Standalone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 4
    - name: Android
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
    - name: iPhone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
  - folderName: HeroSkinCard
    blockOffset: 1
    enableRotation: 0
    enableTightPacking: 0
    padding: 4
    readable: 0
    generateMipMaps: 0
    sRGB: 1
    filterMode: 1
    platformSettings:
    - name: Standalone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 4
    - name: Android
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
    - name: iPhone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
  - folderName: HeroDebut
    blockOffset: 1
    enableRotation: 0
    enableTightPacking: 0
    padding: 4
    readable: 0
    generateMipMaps: 0
    sRGB: 1
    filterMode: 1
    platformSettings:
    - name: Standalone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 4
    - name: Android
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
    - name: iPhone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
  - folderName: HeroDebutHero_510016
    blockOffset: 1
    enableRotation: 0
    enableTightPacking: 0
    padding: 4
    readable: 0
    generateMipMaps: 0
    sRGB: 1
    filterMode: 1
    platformSettings:
    - name: Standalone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 4
    - name: Android
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
    - name: iPhone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
  - folderName: HeroDebutHero_540016
    blockOffset: 1
    enableRotation: 0
    enableTightPacking: 0
    padding: 4
    readable: 0
    generateMipMaps: 0
    sRGB: 1
    filterMode: 1
    platformSettings:
    - name: Standalone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 4
    - name: Android
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
    - name: iPhone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
  - folderName: SkinGift
    blockOffset: 1
    enableRotation: 0
    enableTightPacking: 0
    padding: 4
    readable: 0
    generateMipMaps: 0
    sRGB: 1
    filterMode: 1
    platformSettings:
    - name: Standalone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 4
    - name: Android
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
    - name: iPhone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
  - folderName: Qunying
    blockOffset: 1
    enableRotation: 0
    enableTightPacking: 0
    padding: 4
    readable: 0
    generateMipMaps: 0
    sRGB: 1
    filterMode: 1
    platformSettings:
    - name: Standalone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 4
    - name: Android
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
    - name: iPhone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
  - folderName: OSRankBeautyMM
    blockOffset: 1
    enableRotation: 0
    enableTightPacking: 0
    padding: 4
    readable: 0
    generateMipMaps: 0
    sRGB: 1
    filterMode: 1
    platformSettings:
    - name: Standalone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 4
    - name: Android
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
    - name: iPhone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
  - folderName: OSRankHeroTrain
    blockOffset: 1
    enableRotation: 0
    enableTightPacking: 0
    padding: 4
    readable: 0
    generateMipMaps: 0
    sRGB: 1
    filterMode: 1
    platformSettings:
    - name: Standalone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 4
    - name: Android
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
    - name: iPhone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
  - folderName: OSRankMingge
    blockOffset: 1
    enableRotation: 0
    enableTightPacking: 0
    padding: 4
    readable: 0
    generateMipMaps: 0
    sRGB: 1
    filterMode: 1
    platformSettings:
    - name: Standalone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 4
    - name: Android
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
    - name: iPhone
      maxTextureSize: 2048
      textureCompression: 1
      textureFormat: 50
Assets/Editor/Tool/ClientPackage.cs
@@ -497,8 +497,8 @@
        File.Copy(copySdkFile, File_google_services);
        copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/gradleTemplate.properties");
        File.Copy(copySdkFile, File_gradleTemplate);
        //copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.appId, "/LauncherManifest.xml");
        //File.Copy(copySdkFile, File_LauncherManifest);
        copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/LauncherManifest.xml");
        File.Copy(copySdkFile, File_LauncherManifest);
        copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/launcherTemplate.gradle");
        File.Copy(copySdkFile, File_launcherTemplate);
        copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/mainTemplate.gradle");
Assets/Editor/UIComponent/GradientTextEditor.cs
@@ -26,9 +26,20 @@
    public override void OnInspectorGUI()
    {
        GradientText targetComponent = target as GradientText;
        base.OnInspectorGUI();
        
        EditorGUILayout.Space();
        // 语言表 key 设置
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("语言表key", GUILayout.Width(60));
        targetComponent.language = EditorGUILayout.Toggle(targetComponent.language, GUILayout.Width(30));
        targetComponent.enableDisplay = EditorGUILayout.TextField(targetComponent.enableDisplay, GUILayout.Width(200));
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.Space();
        EditorGUILayout.LabelField("渐变设置", EditorStyles.boldLabel);
        
        serializedObject.Update();
Assets/Editor/VersionConfigs/Versions.txt
@@ -1,8 +1,10 @@
Id    name    AppId    VersionAuthority    m_Version    m_ClientPackageFlag    m_Branch    m_GameId    m_AssetAccess    m_PartAssetPackage    m_ProductName    m_BundleIdentifier    m_KeystoreFileName    m_KeystorePassword    m_KeystoreAlias    m_KeystoreAliasPassword    m_AppleDeveloperTeamID    m_DebugVersion    m_IsBanShu    m_LogoPosition    m_BanHao    m_SpID    m_Recharge    m_CreateRolePattern    SdkFileName
版本标识    版本名称    渠道id    版本权限,0是测试版本,1是发布版本    版本号    客户端标识    分支    游戏项目标识    资源,0NullAsset,1HalfAsset,2FullAsset,3IgnoreDownLoad    是否分包,0不分包,1分包    产品名    产品包名    签名文件名    签名文件密码    签名文件别名    签名文件别名密码    开发者账号密码    是否debug版本,0否1是    是否版署版本,0否1是    登录界面的Logo位置    版号    运营商ID    充值界面风格    创角场景风格    sdk目录别名
9999    TheSecondWorld    test    0    1.0.2    2025    3    xbqy    2    0    xssg    com.secondworld.xssg    thesecondworld    thesecondworld2018    thesecondworld    thesecondworld2018        0    0    (-32,144)            0        test
9998    TheSecondWorld    test    0    1.0.2    2025    4    xbqy    2    0    xssg    com.secondworld.xssg    thesecondworld    thesecondworld2018    thesecondworld    thesecondworld2018        0    0    (-32,144)            0        test
1    xssg    xssg    1    1.1.1    2025    1    xssg    2    1    艾尔指挥官    com.bl.aezhg.quick    thesecondworld    thesecondworld2018    thesecondworld    thesecondworld2018        0    0    (-32,144)            0        xssg
11    xssg    xssg    1    1.1.1    2025    11    xssg    2    1    艾尔指挥官    com.secondworld.xssg    thesecondworld    thesecondworld2018    thesecondworld    thesecondworld2018        0    0    (-32,144)            0        xssg
900    xssg    xssg    1    1.1.1    2025    900    xssg    2    1    艾尔指挥官    com.bl.aezhg.quick    thesecondworld    thesecondworld2018    thesecondworld    thesecondworld2018        0    0    (-32,144)            0        xssg
101    txws    txws    1    1.1.1    2025    1    xssg    2    1    天下无双HD    com.bl.aezhg.quick    thesecondworld    thesecondworld2018    thesecondworld    thesecondworld2018        0    0    (-32,144)            0        txws
9999    TheSecondWorld    test    0    1.0.2    2026    3    xbqy    2    0    xssg    com.secondworld.xssg    xmplaygame    xmpg260325    xmpg_alias    xmpg260325        0    0    (-32,144)            0        test
9998    TheSecondWorld    test    0    1.0.2    2026    4    xbqy    2    0    xssg    com.secondworld.xssg    xmplaygame    xmpg260325    xmpg_alias    xmpg260325        0    0    (-32,144)            0        test
1    xssg    xssg    1    1.1.7    2026    1    xssg    2    1    艾尔指挥官    com.bl.aezhg.quick    xmplaygame    xmpg260325    xmpg_alias    xmpg260325        0    0    (-32,144)            0        xssg
11    xssg    xssg    1    1.1.7    2026    11    xssg    2    1    艾尔指挥官    com.secondworld.xssg    xmplaygame    xmpg260325    xmpg_alias    xmpg260325        0    0    (-32,144)            0        xssg
900    xssg    xssg    1    1.1.7    2026    900    xssg    2    1    艾尔指挥官    com.bl.aezhg.quick    xmplaygame    xmpg260325    xmpg_alias    xmpg260325        0    0    (-32,144)            0        xssg
101    txws    txws    1    1.1.7    2026    1    xssg    2    1    天下无双HD    com.bl.aezhg.quick    xmplaygame    xmpg260325    xmpg_alias    xmpg260325        0    0    (-32,144)            0        txws
111    txws    txws    1    1.1.7    2026    11    xssg    2    1    天下无双HD    com.bl.aezhg.quick    xmplaygame    xmpg260325    xmpg_alias    xmpg260325        0    0    (-32,144)            0        txws
21    ryzj    ryzj    1    2.2.1    2026    1    xssg    2    1    荣耀战将    com.ryzj.bhwf    xmplaygame    xmpg260325    xmpg_alias    xmpg260325        0    0    (-32,144)            0        ryzj
Assets/Launch/Common/AotSdkUtility.cs
New file
@@ -0,0 +1,11 @@
public class AotSdkUtility : Singleton<AotSdkUtility>
{
#if UNITY_IOS && !UNITY_EDITOR
    [System.Runtime.InteropServices.DllImport("__Internal")]
    public static extern void IOSUniyMessageHandle(string json);
#endif
    public void Init()
    {
    }
}
Assets/Launch/Common/AotSdkUtility.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e7080752cff761b42b8562efc2666eea
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Launch/Launch.cs
@@ -188,7 +188,7 @@
    private void SDKInit()
    {
        AotSdkUtility.Instance.Init();
    }
    
    /// <summary>
Assets/Launch/Manager/LocalResManager.cs
@@ -94,7 +94,7 @@
    public static string versionUrlResult { get; private set; }
        /// <summary>
    /// <summary>
    /// 语言的ID,用于区分下载资源
    /// </summary>
    /// <value></value>
@@ -102,9 +102,14 @@
    {
        get
        {
            var config = InitialFunctionConfig.Get("Language").Numerical1;
            if (string.IsNullOrEmpty(config))
            if (languageStartDict == null || languageStartDict.Count == 0)
            {
                return "";
            }
            if (!languageStartDict.ContainsKey(VersionConfigEx.Get().appId))
            {
                return "";
            }
            return LocalSave.GetString("LANGUAGE_ID1");
        }
        set
@@ -113,6 +118,7 @@
        }
    }
    //多语言的路径
    //默认路径不附加地址,Id不为空时附加Id
    public static string fixPath
    {
@@ -407,37 +413,73 @@
    }
    static Dictionary<string, string> languageShowDict = new Dictionary<string, string>();//射中显示的多语言版本
    Dictionary<string, string> languageDict = new Dictionary<string, string>();// unity语言配置对应的约定字符
    string defaultLanguage = string.Empty;
    static Dictionary<string, string> languageShowDict = new Dictionary<string, string>();//界面显示的多语言版本
    //启动多语言的渠道,如{appid:[默认语言标识,是否首次安装强制指定语言,只包含哪些语言版本]}
    // 如{"sghy":["en","0","en,zh,ft"]},字符0代表随系统选择如果找不到则用默认,配1则不检查系统直接用默认
    //为了同代码版本同表维护,保持配置一致按appid区分,只做翻译处理
    static Dictionary<string, string[]> languageStartDict = new Dictionary<string, string[]>();//启动多语言的渠道
    Dictionary<string, string> languageDict = new Dictionary<string, string>();// unity语言配置对应的约定字符 找不到用默认
    public void InitDefaultLanguage()
    {
        if (languageShowDict == null || languageShowDict.Count == 0)
        //初始化, 该表是随包安装的如果热更需要二次才生效
        var config = InitialFunctionConfig.Get("LanguageEx");
        if (config.Numerical1 == null || config.Numerical2 == null || config.Numerical3 == null)
        {
            var config = InitialFunctionConfig.Get("Language");
            Debug.LogFormat("系统语言:{0} {1}", Application.systemLanguage, config.Numerical1);
            if (string.IsNullOrEmpty(config.Numerical1))
                return;
            languageShowDict = JsonMapper.ToObject<Dictionary<string, string>>(config.Numerical1);
            languageDict = JsonMapper.ToObject<Dictionary<string, string>>(config.Numerical5);
            defaultLanguage = config.Numerical2;
            if (!languageShowDict.ContainsKey(defaultLanguage))
                defaultLanguage = string.Empty;
            return;
        }
        languageShowDict = JsonMapper.ToObject<Dictionary<string, string>>(config.Numerical1);
        languageStartDict = JsonMapper.ToObject<Dictionary<string, string[]>>(config.Numerical2);
        languageDict = JsonMapper.ToObject<Dictionary<string, string>>(config.Numerical3);
        if (languageStartDict == null || !languageStartDict.ContainsKey(VersionConfigEx.Get().appId))
        {
            //检查有没多语言
            Debug.Log("当前渠道未开启多语言:" + VersionConfigEx.Get().appId);
            return;
        }
        Debug.LogFormat("系统语言:{0} {1}", Application.systemLanguage, config.Numerical1);
        var id = LocalSave.GetString("LANGUAGE_ID1");
        if (!string.IsNullOrEmpty(id))
            return;
        string languageMark = ((int)Application.systemLanguage).ToString();
        if (languageDict.ContainsKey(languageMark))
        {
            id = languageDict[languageMark];
            //玩家已经选择过语言,不做处理
            Debug.Log("当前选择语言:" + id);
            return;
        }
        Id = languageShowDict.ContainsKey(id) ? id : defaultLanguage;
        var defaultCfg = languageStartDict[VersionConfigEx.Get().appId];
        string languageMark;
        if (defaultCfg[1] == "0")
        {
            //随系统选择
            languageMark = ((int)Application.systemLanguage).ToString();
            if (languageDict.ContainsKey(languageMark))
            {
                id = languageDict[languageMark];
                var lanArr = defaultCfg[2].Split(',');
                if (Array.IndexOf(lanArr, id) == -1)
                {
                    //不包含的语言 用默认
                    id = defaultCfg[0];
                }
            }
            else
            {
                //默认
                id = defaultCfg[0];
            }
        }
        else
        {
            //强制指定默认
            id = defaultCfg[0];
        }
        Id = id;
        Debug.LogFormat("系统语言:{0} 设置为{1}", Application.systemLanguage, Id);
    }
    
Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so
Binary files differ
Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so.meta
File was deleted
Assets/Plugins/Android/libs/x86/liblzma.so
Binary files differ
Assets/Plugins/Android/libs/x86/liblzma.so.meta
File was deleted