mirror of
https://github.com/RHeavenStudioPlus/HeavenStudioPlus.git
synced 2024-11-25 19:15:16 +00:00
4c4d0a7a7a
* add pause menu assets * layout and animation for pause * make play mode prefab function re-assign unused class inheritance * remove filepath * don't init medals twice * remove PlayerActionObject * initial attempt at anti-note lock TODO: circumvent inputs clearing themselves making the functionality not work * properly implement input lock prevention * fix error on editor open * functional pause menu * bugfix * make unpausing not reset current play statistics * serialize initializer components in inspector instead of procedurally generating * sanity check * note for fade * make flashes in the camera prefabs instead of in world space remove / reorganize script files address issue #411 * fix bug with perfect campaign make minigame transitions hide the game canvas adjust animation of the song credits textbox * fully functional intro scene (placeholder for future title screen) refactored entire game loading procedure re-organized some files * add interaction query to disclaimer text * reword legal * anchor section medals to section display more tempo change placement controls * operation order bugfix * prep for future ratings and stats * loading text * autoload opening scene * splash screen adjustments added setting to force enable splash screen * adjust setting entry
86 lines
No EOL
3.3 KiB
C#
86 lines
No EOL
3.3 KiB
C#
using System;
|
|
|
|
public static class AppInfo {
|
|
public const string Version = "0.0.974";
|
|
public static readonly DateTime Date = new DateTime(2023, 05, 07, 18, 03, 45, 426, DateTimeKind.Utc);
|
|
}
|
|
|
|
|
|
#if UNITY_EDITOR
|
|
/// <summary>
|
|
/// Increase Build Number Automatically
|
|
/// </summary>
|
|
public class BuildNumberUpdater : UnityEditor.Build.IPreprocessBuild
|
|
{
|
|
private static readonly char[] LineDelimiter = {'\n', '\r'};
|
|
|
|
/// <summary> File name where info is stored </summary>
|
|
private const string AppInfoFileName = "AppInfo.cs";
|
|
|
|
public int callbackOrder {
|
|
get { return 0; }
|
|
}
|
|
|
|
void UnityEditor.Build.IPreprocessBuild.OnPreprocessBuild(UnityEditor.BuildTarget target, string path) {
|
|
var scriptPath = GetScriptPath(AppInfoFileName);
|
|
var version = IncVersion();
|
|
var time = DateTime.UtcNow;
|
|
string date = "new DateTime(" + time.ToString("yyyy, MM, dd, HH, mm, ss, fff") + ", DateTimeKind.Utc)";
|
|
|
|
UnityEngine.Debug.LogFormat(
|
|
"OnPreprocessBuild. Modify AppInfo in file={0}, set version={1} and current DateTime",
|
|
scriptPath, version);
|
|
|
|
var text = System.IO.File.ReadAllText(scriptPath);
|
|
text = ReplaceText(text, " Version = ", "\"" + version + "\";");
|
|
text = ReplaceText(text, " Date = ", date + ";");
|
|
System.IO.File.WriteAllText(scriptPath, text);
|
|
}
|
|
|
|
private static string ReplaceText(string text, string field, string newValue) {
|
|
int v1 = text.IndexOf(field, StringComparison.Ordinal);
|
|
int v2 = text.IndexOfAny(LineDelimiter, v1);
|
|
if (v1 < 0 || v2 < 0)
|
|
throw new Exception("Undefined field=" + field);
|
|
return text.Substring(0, v1 + field.Length) + newValue + text.Substring(v2);
|
|
}
|
|
|
|
private static string IncVersion() {
|
|
var bundleVersionSplit = UnityEditor.PlayerSettings.bundleVersion.Split('.');
|
|
int major = 0;
|
|
int minor = 0;
|
|
int subVersion = 0;
|
|
if (bundleVersionSplit.Length >= 1)
|
|
int.TryParse(bundleVersionSplit[0], out major);
|
|
if (bundleVersionSplit.Length >= 2)
|
|
int.TryParse(bundleVersionSplit[1], out minor);
|
|
if (bundleVersionSplit.Length >= 3)
|
|
int.TryParse(bundleVersionSplit[2], out subVersion);
|
|
++subVersion;
|
|
string version = string.Format("{0}.{1}.{2}", major, minor, subVersion);
|
|
var bundleVersionCode = (major * 100000) + (minor * 1000) + subVersion;
|
|
|
|
UnityEditor.PlayerSettings.bundleVersion = version;
|
|
UnityEditor.PlayerSettings.Android.bundleVersionCode = bundleVersionCode;
|
|
UnityEditor.PlayerSettings.macOS.buildNumber = bundleVersionCode.ToString();
|
|
return version;
|
|
}
|
|
|
|
|
|
private static string GetScriptPath(string fileName) {
|
|
var assets = UnityEditor.AssetDatabase.FindAssets(System.IO.Path.GetFileNameWithoutExtension(fileName));
|
|
string scriptPath = null;
|
|
foreach (var asset in assets) {
|
|
var path = UnityEditor.AssetDatabase.GUIDToAssetPath(asset);
|
|
if (path.EndsWith(".cs")) {
|
|
scriptPath = path;
|
|
break;
|
|
}
|
|
}
|
|
if (string.IsNullOrEmpty(scriptPath))
|
|
throw new Exception("No asset file with name '" + AppInfoFileName + "' found");
|
|
|
|
return scriptPath;
|
|
}
|
|
}
|
|
#endif |