From e5519e0b8b8086a926e70378b884034500987e16 Mon Sep 17 00:00:00 2001 From: MarcUs7 <96580944+MarcUs7i@users.noreply.github.com> Date: Sun, 29 Dec 2024 14:35:12 +0100 Subject: [PATCH] update build pipeline with build date injection --- .gitignore | 3 ++ Assets/BuildDateInjector.cs | 15 ++++++++++ Assets/BuildDateInjector.cs.meta | 3 ++ Assets/Editor.meta | 8 ++++++ Assets/Editor/BuildDateAutomaticInjector.cs | 18 ++++++++++++ .../Editor/BuildDateAutomaticInjector.cs.meta | 2 ++ Assets/game/Scenes/Start.unity | 28 +++++++++++++------ .../game/Scripts/UI_start/GameInfoInjector.cs | 24 ++++++++++++++++ .../Scripts/UI_start/GameInfoInjector.cs.meta | 2 ++ ProjectSettings/ProjectSettings.asset | 3 +- 10 files changed, 97 insertions(+), 9 deletions(-) create mode 100644 Assets/BuildDateInjector.cs create mode 100644 Assets/BuildDateInjector.cs.meta create mode 100644 Assets/Editor.meta create mode 100644 Assets/Editor/BuildDateAutomaticInjector.cs create mode 100644 Assets/Editor/BuildDateAutomaticInjector.cs.meta create mode 100644 Assets/game/Scripts/UI_start/GameInfoInjector.cs create mode 100644 Assets/game/Scripts/UI_start/GameInfoInjector.cs.meta diff --git a/.gitignore b/.gitignore index 81152c0..0fd5474 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,6 @@ crashlytics-build.properties # Ignore Rider files /.idea/ + +# Auto-generated build files +Assets/Resources/BuildInfo.txt* diff --git a/Assets/BuildDateInjector.cs b/Assets/BuildDateInjector.cs new file mode 100644 index 0000000..19a0d5d --- /dev/null +++ b/Assets/BuildDateInjector.cs @@ -0,0 +1,15 @@ +using UnityEditor; +using System.IO; + +public class BuildDateInjector +{ + [MenuItem("Build/Inject Build Date")] + public static void InjectBuildDate() + { + var buildDate = System.DateTime.Now.ToString("dd.MM.yyyy"); + const string path = "Assets/Resources/BuildInfo.txt"; + + File.WriteAllText(path, buildDate); + AssetDatabase.Refresh(); + } +} \ No newline at end of file diff --git a/Assets/BuildDateInjector.cs.meta b/Assets/BuildDateInjector.cs.meta new file mode 100644 index 0000000..7048d99 --- /dev/null +++ b/Assets/BuildDateInjector.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4c9fbe6fc7144df5826f4456a3d8f461 +timeCreated: 1735478822 \ No newline at end of file diff --git a/Assets/Editor.meta b/Assets/Editor.meta new file mode 100644 index 0000000..4d23fd8 --- /dev/null +++ b/Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1833fb44ddb54504e8dbf9ceae83db1d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor/BuildDateAutomaticInjector.cs b/Assets/Editor/BuildDateAutomaticInjector.cs new file mode 100644 index 0000000..cb28ede --- /dev/null +++ b/Assets/Editor/BuildDateAutomaticInjector.cs @@ -0,0 +1,18 @@ +using UnityEditor; +using UnityEditor.Build; +using UnityEditor.Build.Reporting; +using System.IO; + +public class BuildDateAutomaticInjector : IPreprocessBuildWithReport +{ + public int callbackOrder => 0; + + public void OnPreprocessBuild(BuildReport report) + { + var buildDate = System.DateTime.Now.ToString("dd.MM.yyyy"); + const string path = "Assets/Resources/BuildInfo.txt"; + + File.WriteAllText(path, buildDate); + AssetDatabase.Refresh(); + } +} \ No newline at end of file diff --git a/Assets/Editor/BuildDateAutomaticInjector.cs.meta b/Assets/Editor/BuildDateAutomaticInjector.cs.meta new file mode 100644 index 0000000..433d55a --- /dev/null +++ b/Assets/Editor/BuildDateAutomaticInjector.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 810ef46d2483209429850c73672e7582 \ No newline at end of file diff --git a/Assets/game/Scenes/Start.unity b/Assets/game/Scenes/Start.unity index 21eaca6..4ca3528 100644 --- a/Assets/game/Scenes/Start.unity +++ b/Assets/game/Scenes/Start.unity @@ -1522,13 +1522,11 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: 'Version: 2.2 + m_text: 'Version: {gamever} - Made with Unity 2021.3.33f1 + Made with Unity {unityver} - Release Date: 01.09.2023 - -' + Release: {builddate}' m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -1577,7 +1575,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -2193,6 +2191,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 626197109} + - component: {fileID: 626197110} m_Layer: 0 m_Name: Info m_TagString: Untagged @@ -2223,6 +2222,19 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &626197110 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 626197108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 749e4081c74524543a779b79e580a3b7, type: 3} + m_Name: + m_EditorClassIdentifier: + infoText: {fileID: 469781835} --- !u!1 &757622826 GameObject: m_ObjectHideFlags: 0 @@ -3500,7 +3512,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -6442,7 +6454,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 diff --git a/Assets/game/Scripts/UI_start/GameInfoInjector.cs b/Assets/game/Scripts/UI_start/GameInfoInjector.cs new file mode 100644 index 0000000..5fc23fd --- /dev/null +++ b/Assets/game/Scripts/UI_start/GameInfoInjector.cs @@ -0,0 +1,24 @@ +using UnityEngine; +using TMPro; + +public class GameInfoInjector : MonoBehaviour +{ + public TextMeshProUGUI infoText; + + private void Start() + { + if (!infoText) + { + Debug.LogError($"{nameof(GameInfoInjector)}: {nameof(infoText)} is not set!"); + return; + } + var buildInfo = Resources.Load("BuildInfo"); + var buildDate = buildInfo ? buildInfo.ToString().Trim() : "undefined"; + + var text = infoText.text.Replace("{gamever}", Application.version) + .Replace("{unityver}", Application.unityVersion) + .Replace("{builddate}", buildDate); + + infoText.text = text; + } +} diff --git a/Assets/game/Scripts/UI_start/GameInfoInjector.cs.meta b/Assets/game/Scripts/UI_start/GameInfoInjector.cs.meta new file mode 100644 index 0000000..b7ffddc --- /dev/null +++ b/Assets/game/Scripts/UI_start/GameInfoInjector.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 749e4081c74524543a779b79e580a3b7 \ No newline at end of file diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index c67851d..49d2309 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -141,7 +141,8 @@ PlayerSettings: visionOSBundleVersion: 1.0 tvOSBundleVersion: 1.0 bundleVersion: 2.2.0 - preloadedAssets: [] + preloadedAssets: + - {fileID: -944628639613478452, guid: bbf97a3321c15364ca23f63ce74f192c, type: 3} metroInputSource: 0 wsaTransparentSwapchain: 0 m_HolographicPauseOnTrackingLoss: 1