In diesem Beitrag soll es um Build-Nummern gehen. Es gibt wie immer verschiedene Methoden Software zu versionieren.
Hier ist meine Methode für für Unity-Projekte und so kann es aussehen:
Um automatisch fortlaufende Build-Nummern zu verwenden, lässt sich folgendes machen:
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 |
using System.Reflection; using UnityEditor; using UnityEngine; [assembly: AssemblyVersion("0.0.*.*")] public class GameVersionData { public static int Major = 0; public static int Minor = 0; public static int Patch = 0; public static int Build = 0; public static int Revision = 0; static GameVersionData() { Build = Assembly.GetExecutingAssembly().GetName().Version.Build; Revision = Assembly.GetExecutingAssembly().GetName().Version.Revision; } } [InitializeOnLoad] public class OnUnityStartup : Editor { static OnUnityStartup() { SceneListWindow.SceneSelection(); OnFocus(); } // Window has been selected public static void OnFocus() { OnDestroy(); SceneView.onSceneGUIDelegate += OnSceneGUI; } static private void OnDestroy() { SceneView.onSceneGUIDelegate -= OnSceneGUI; } private static void OnSceneGUI(SceneView sceneView) { Handles.BeginGUI(); GUILayout.BeginArea(new Rect(5, Screen.height - 55, 1000, 150)); GameSettings.Instance.VersionControl.Build = GameVersionData.Build; GameSettings.Instance.VersionControl.Revision = GameVersionData.Revision; GUILayout.Label(string.Format("{0} v{1}", PlayerSettings.productName, GameSettings.Instance.VersionControl.Current)); GUILayout.EndArea(); Handles.EndGUI(); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[Serializable] public class VersionControl { public int Major = 0; public int Minor = 0; public int Patch = 0; [HideInInspector] public int Build = 0; [HideInInspector] public int Revision = 0; public string Current { get { return string.Format("{0}.{1}.{2}.{3}.{4}", Major, Minor, Patch, Build, Revision); } } public string CurrentVersion { get { return string.Format("{0}.{1}.{2}.{3}", Major, Minor, Patch, Build); } } } |
1 2 3 4 |
public class GameSettings : ScriptableObject { public VersionControl VersionControl = new VersionControl(); } |