diff --git a/dist/index.js b/dist/index.js index 37cb10c7..4e872ec8 100644 Binary files a/dist/index.js and b/dist/index.js differ diff --git a/dist/index.js.map b/dist/index.js.map index 20a881ef..4de56fb1 100644 Binary files a/dist/index.js.map and b/dist/index.js.map differ diff --git a/src/model/unity-versioning.test.ts b/src/model/unity-versioning.test.ts index 5db2af14..e5ffd6e9 100644 --- a/src/model/unity-versioning.test.ts +++ b/src/model/unity-versioning.test.ts @@ -11,6 +11,12 @@ describe('Unity Versioning', () => { m_EditorVersionWithRevision: 2021.3.4f1 (cb45f9cae8b7)`; expect(UnityVersioning.parse(projectVersionContents)).toBe('2021.3.4f1'); }); + + it('parses Unity 6000 and newer from ProjectVersion.txt', () => { + const projectVersionContents = `m_EditorVersion: 6000.0.0f1 + m_EditorVersionWithRevision: 6000.0.0f1 (cb45f9cae8b7)`; + expect(UnityVersioning.parse(projectVersionContents)).toBe('6000.0.0f1'); + }); }); describe('read', () => { diff --git a/src/model/unity-versioning.ts b/src/model/unity-versioning.ts index 098aee25..b2378b6e 100644 --- a/src/model/unity-versioning.ts +++ b/src/model/unity-versioning.ts @@ -2,10 +2,6 @@ import fs from 'node:fs'; import path from 'node:path'; export default class UnityVersioning { - static get versionPattern() { - return /20\d{2}\.\d\.\w{3,4}|3/; - } - static determineUnityVersion(projectPath: string, unityVersion: string) { if (unityVersion === 'auto') { return UnityVersioning.read(projectPath); @@ -24,11 +20,13 @@ export default class UnityVersioning { } static parse(projectVersionTxt: string) { - const matches = projectVersionTxt.match(UnityVersioning.versionPattern); - if (!matches || matches.length === 0) { - throw new Error(`Failed to parse version from "${projectVersionTxt}".`); + const versionRegex = /m_EditorVersion: (\d+\.\d+\.\d+[A-Za-z]?\d+)/; + const matches = projectVersionTxt.match(versionRegex); + + if (!matches || matches.length < 2) { + throw new Error(`Failed to extract version from "${projectVersionTxt}".`); } - return matches[0]; + return matches[1]; } }