/* * @Author: 白哉 * @Description: * @Date: 2025年07月25日 星期五 14:07:09 * @Modify: */ using System; using System.Collections.Generic; using Logic.Multilingual; using UnityEngine; namespace Logic.Config { public class VersionConfig : ScriptableObject { public uint CurVersionId; // 当前版本ID public List Versions = new List(); public VersionInfo CurVersionInfo => GetVersionInfo(CurVersionId); public void CreateNewVersion(uint major, uint minor, uint patch, uint fourth) { var newVersion = new VersionInfo { MajorVersion = major, MinorVersion = minor, PatchVersion = patch, FourthVersion = fourth, }; Versions.Add(newVersion); } public VersionInfo GetVersionInfo(uint versionId) { if (Versions == null || Versions.Count == 0) return null; foreach (var version in Versions) { if (version.VersionId == versionId) return version; } return null; } } [Serializable] public class VersionInfo { public uint MajorVersion; // 主版本号 public uint MinorVersion; // 次版本号 public uint PatchVersion; // 补丁号 [MultilingualField] public string Description; // 版本描述 public uint FourthVersion; // 第四版本号,预留字段 // 版本ID,格式为 Major.Minor.Patch.Fourth public uint VersionId => MajorVersion * 1000000 + MinorVersion * 10000 + PatchVersion * 100 + FourthVersion; public string FullVersion => $"{MajorVersion}.{MinorVersion}.{PatchVersion}"+ ((FourthVersion == 0) ? "":$"{GetFourthVersionLetter()}"); public string WindowsFullVersion => $"{MajorVersion}_{MinorVersion}_{PatchVersion}"+ ((FourthVersion == 0) ? "":$"{GetFourthVersionLetter()}"); public string Version => $"{MajorVersion}.{MinorVersion}.{PatchVersion}"; public string WindowsVersion => $"{MajorVersion}_{MinorVersion}_{PatchVersion}"; public string OldFullVersion => $"1.{MinorVersion}.{PatchVersion}"; public string OldWindowsFullVersion => $"1_{MinorVersion}_{PatchVersion}"; // 将 FourthVersion 转成小写英文字母, 0 对应 a public string GetFourthVersionLetter() { return ((char)('a' + FourthVersion)).ToString(); } } }