/* * @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 uint CurVersionMajorId => CurVersionId / 10000; public uint CurVersionMinorId => CurVersionId % 10000 / 100; public uint CurVersionPatchId => CurVersionId % 100; public void CreateNewVersion(uint major, uint minor, uint patch) { var newVersion = new VersionInfo { MajorVersion = major, MinorVersion = minor, PatchVersion = patch }; 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 VersionId => MajorVersion * 10000 + MinorVersion * 100 + PatchVersion; // 版本ID,格式为 Major.Minor.Patch public string FullVersion => $"{MajorVersion}.{MinorVersion}.{PatchVersion}"; } }