Skip to content

Commit 8b67291

Browse files
authored
Merge pull request #340 from De-Panther/error_no_urp
Added error message when there's no Universal Render Pipeline package…
2 parents 321d65a + 6d6799b commit 8b67291

File tree

3 files changed

+71
-55
lines changed

3 files changed

+71
-55
lines changed

Packages/webxr/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99
### Added
1010
- An option to auto-load WebXRManager on start in WebXRSettings.
1111
- An option to auto-load WebXRInputSystem on start in WebXRSettings.
12+
- Error message when there's no Universal Render Pipeline package in project.
1213

1314
## [0.20.0] - 2023-12-18
1415
### Added

Packages/webxr/Editor/WebXR.Editor.asmdef

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"name": "WebXR.Editor",
3+
"rootNamespace": "",
34
"references": [
45
"GUID:fd4abe4ffe74ef1448afe15c6cb36bb7",
56
"GUID:f9fe0089ec81f4079af78eb2287a6163"
@@ -13,6 +14,12 @@
1314
"precompiledReferences": [],
1415
"autoReferenced": false,
1516
"defineConstraints": [],
16-
"versionDefines": [],
17+
"versionDefines": [
18+
{
19+
"name": "com.unity.render-pipelines.universal",
20+
"expression": "",
21+
"define": "HAS_URP"
22+
}
23+
],
1724
"noEngineReferences": false
1825
}

Packages/webxr/Editor/WebXRBuildProcessor.cs

Lines changed: 62 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -8,46 +8,46 @@ namespace WebXR
88
{
99
public class WebXRBuildProcessor : IPreprocessBuildWithReport, IPostprocessBuildWithReport
1010
{
11-
/// <summary>Override of <see cref="IPreprocessBuildWithReport"/> and <see cref="IPostprocessBuildWithReport"/></summary>
12-
public int callbackOrder
13-
{
14-
get { return 0; }
15-
}
11+
/// <summary>Override of <see cref="IPreprocessBuildWithReport"/> and <see cref="IPostprocessBuildWithReport"/></summary>
12+
public int callbackOrder
13+
{
14+
get { return 0; }
15+
}
1616

17-
void CleanOldSettings()
18-
{
19-
UnityEngine.Object[] preloadedAssets = PlayerSettings.GetPreloadedAssets();
20-
if (preloadedAssets == null)
21-
return;
17+
void CleanOldSettings()
18+
{
19+
UnityEngine.Object[] preloadedAssets = PlayerSettings.GetPreloadedAssets();
20+
if (preloadedAssets == null)
21+
return;
2222

23-
var oldSettings = from s in preloadedAssets
24-
where s != null && s.GetType() == typeof(WebXRSettings)
25-
select s;
26-
27-
if (oldSettings != null && oldSettings.Any())
28-
{
29-
var assets = preloadedAssets.ToList();
30-
foreach (var s in oldSettings)
31-
{
32-
assets.Remove(s);
33-
}
23+
var oldSettings = from s in preloadedAssets
24+
where s != null && s.GetType() == typeof(WebXRSettings)
25+
select s;
3426

35-
PlayerSettings.SetPreloadedAssets(assets.ToArray());
36-
}
27+
if (oldSettings != null && oldSettings.Any())
28+
{
29+
var assets = preloadedAssets.ToList();
30+
foreach (var s in oldSettings)
31+
{
32+
assets.Remove(s);
3733
}
3834

39-
/// <summary>Override of <see cref="IPreprocessBuildWithReport"/></summary>
40-
/// <param name="report">Build report.</param>
41-
public void OnPreprocessBuild(BuildReport report)
42-
{
43-
// Always remember to cleanup preloaded assets after build to make sure we don't
44-
// dirty later builds with assets that may not be needed or are out of date.
45-
CleanOldSettings();
35+
PlayerSettings.SetPreloadedAssets(assets.ToArray());
36+
}
37+
}
4638

47-
if (report.summary.platform != BuildTarget.WebGL)
48-
{
49-
return;
50-
}
39+
/// <summary>Override of <see cref="IPreprocessBuildWithReport"/></summary>
40+
/// <param name="report">Build report.</param>
41+
public void OnPreprocessBuild(BuildReport report)
42+
{
43+
// Always remember to cleanup preloaded assets after build to make sure we don't
44+
// dirty later builds with assets that may not be needed or are out of date.
45+
CleanOldSettings();
46+
47+
if (report.summary.platform != BuildTarget.WebGL)
48+
{
49+
return;
50+
}
5151

5252
#if UNITY_2020_3 || UNITY_2021_1
5353
if (!PlayerSettings.WebGL.emscriptenArgs.Contains("-std="))
@@ -56,28 +56,36 @@ public void OnPreprocessBuild(BuildReport report)
5656
}
5757
#endif
5858

59-
WebXRSettings settings = null;
60-
EditorBuildSettings.TryGetConfigObject<WebXRSettings>("WebXR.Settings", out settings);
61-
if (settings == null)
62-
return;
59+
WebXRSettings settings = WebXRSettings.GetSettings();
60+
if (settings == null)
61+
return;
6362

64-
UnityEngine.Object[] preloadedAssets = PlayerSettings.GetPreloadedAssets();
63+
UnityEngine.Object[] preloadedAssets = PlayerSettings.GetPreloadedAssets();
6564

66-
if (!preloadedAssets.Contains(settings))
67-
{
68-
var assets = preloadedAssets.ToList();
69-
assets.Add(settings);
70-
PlayerSettings.SetPreloadedAssets(assets.ToArray());
71-
}
72-
}
65+
if (!preloadedAssets.Contains(settings))
66+
{
67+
var assets = preloadedAssets.ToList();
68+
assets.Add(settings);
69+
PlayerSettings.SetPreloadedAssets(assets.ToArray());
70+
}
71+
}
7372

74-
/// <summary>Override of <see cref="IPostprocessBuildWithReport"/></summary>
75-
/// <param name="report">Build report.</param>
76-
public void OnPostprocessBuild(BuildReport report)
77-
{
78-
// Always remember to cleanup preloaded assets after build to make sure we don't
79-
// dirty later builds with assets that may not be needed or are out of date.
80-
CleanOldSettings();
81-
}
73+
/// <summary>Override of <see cref="IPostprocessBuildWithReport"/></summary>
74+
/// <param name="report">Build report.</param>
75+
public void OnPostprocessBuild(BuildReport report)
76+
{
77+
// Always remember to cleanup preloaded assets after build to make sure we don't
78+
// dirty later builds with assets that may not be needed or are out of date.
79+
CleanOldSettings();
80+
}
81+
82+
#if !HAS_URP
83+
[InitializeOnLoadMethod]
84+
private static void OnPostprocessAssets()
85+
{
86+
UnityEngine.Debug.LogError(@"WebXR Export requires Universal Render Pipeline,
87+
using Built-in Render Pipeline might cause issues.");
88+
}
89+
#endif
8290
}
8391
}

0 commit comments

Comments
 (0)