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.keystoreBinary 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.soBinary files differ
Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so.meta
File was deleted Assets/Plugins/Android/libs/x86/liblzma.soBinary files differ
Assets/Plugins/Android/libs/x86/liblzma.so.meta
File was deleted