Skip to content

Commit ba4f4e1

Browse files
committed
Merge remote-tracking branch 'khronos/enhancement/detailedgeneratorinformations' into dev
2 parents a5a70f4 + dcf7e9b commit ba4f4e1

File tree

4 files changed

+81
-1
lines changed

4 files changed

+81
-1
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
using UnityEditor;
2+
using UnityEditor.Build;
3+
using UnityEditor.Build.Reporting;
4+
using UnityEditor.Callbacks;
5+
using UnityEngine;
6+
7+
namespace UnityGLTF
8+
{
9+
public class PackageVersionPreprocessBuild : IPreprocessBuildWithReport
10+
{
11+
public int callbackOrder
12+
{
13+
get => 0;
14+
}
15+
16+
private static void SetPackageVersion(bool resetValue = false)
17+
{
18+
var defaultSettings = GLTFSettings.GetOrCreateSettings();
19+
if (!defaultSettings)
20+
return;
21+
22+
defaultSettings.packageVersion = resetValue ? null : defaultSettings.GetUnityGltfVersion();
23+
EditorUtility.SetDirty(defaultSettings);
24+
AssetDatabase.SaveAssets();
25+
AssetDatabase.Refresh();
26+
}
27+
28+
public void OnPreprocessBuild(BuildReport report)
29+
{
30+
SetPackageVersion();
31+
}
32+
33+
[PostProcessBuild(1)]
34+
public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject)
35+
{
36+
SetPackageVersion(true);
37+
}
38+
}
39+
}

Editor/Scripts/PackageVersionPreprocessBuild.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Runtime/Scripts/GLTFSceneExporter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,7 @@ public GLTFSceneExporter(Transform[] rootTransforms, ExportContext context)
626626
Asset = new Asset
627627
{
628628
Version = "2.0",
629-
Generator = "UnityGLTF"
629+
Generator = settings.Generator
630630
},
631631
Buffers = new List<GLTFBuffer>(),
632632
BufferViews = new List<BufferView>(),

Runtime/Scripts/GLTFSettings.cs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,44 @@ public class GLTFSettings : ScriptableObject
1919
private const string k_SettingsFileName = "UnityGLTFSettings.asset";
2020
public const string k_RuntimeAndEditorSettingsPath = "Assets/Resources/" + k_SettingsFileName;
2121

22+
23+
[SerializeField, HideInInspector]
24+
// Will be set on building in PackageVersionPreprocessBuild.cs
25+
internal string packageVersion = null;
26+
27+
public string Generator { get => GetGenerator();}
28+
29+
#if UNITY_EDITOR
30+
internal string GetUnityGltfVersion()
31+
{
32+
var packageInfo = UnityEditor.PackageManager.PackageInfo.FindForAssembly(Assembly.GetAssembly(typeof(GLTFSettings)));
33+
if (packageInfo != null)
34+
return packageInfo.version;
35+
return "";
36+
}
37+
#endif
38+
39+
internal string GetGenerator()
40+
{
41+
string gltfVersion;
42+
#if UNITY_EDITOR
43+
gltfVersion = GetUnityGltfVersion();
44+
#else
45+
gltfVersion = packageVersion;
46+
#endif
47+
var renderPipeline = "Built-in RP";
48+
var renderPipelineAsset = UnityEngine.Rendering.GraphicsSettings.renderPipelineAsset;
49+
if (renderPipelineAsset)
50+
{
51+
renderPipeline = renderPipelineAsset.GetType().Name;
52+
if (renderPipeline == "UniversalRenderPipelineAsset")
53+
renderPipeline = "URP";
54+
else if (renderPipeline == "HighDefinitionRenderPipelineAsset")
55+
renderPipeline = "HDRP";
56+
}
57+
return $"UnityGltf {gltfVersion}, Unity {Application.unityVersion}, {renderPipeline}";
58+
}
59+
2260
[Flags]
2361
public enum BlendShapeExportPropertyFlags
2462
{

0 commit comments

Comments
 (0)