Skip to content

Commit 9c04382

Browse files
author
srl87
committed
version 5.4.0-r.8
1 parent 8415599 commit 9c04382

1,809 files changed

Lines changed: 1111160 additions & 1108116 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

com.htc.upm.wave.essence/Editor.meta

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

com.htc.upm.wave.essence/Editor/EssenceSettingsProvider.cs

Lines changed: 186 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
using UnityEditor;
1616
using UnityEditor.PackageManager;
1717
using UnityEngine;
18+
using UnityEngine.Rendering;
1819
using Wave.XR;
1920
using Wave.XR.Settings;
2021

@@ -182,6 +183,35 @@ internal static bool IsInteractionModePackageOnceImported()
182183
}
183184
#endregion
184185

186+
#region BodyTracking asset
187+
const string kBodyTrackingAsset = "/BodyTracking.asset";
188+
public static void UpdateAssetBodyTracking(bool importedBodyTrackingPackage)
189+
{
190+
PackageEssenceAsset asset = null;
191+
if (File.Exists(WaveEssencePath + kBodyTrackingAsset))
192+
{
193+
asset = AssetDatabase.LoadAssetAtPath(WaveEssencePath + kBodyTrackingAsset, typeof(PackageEssenceAsset)) as PackageEssenceAsset;
194+
asset.importedBodyTrackingPackage = importedBodyTrackingPackage;
195+
}
196+
else
197+
{
198+
asset = ScriptableObject.CreateInstance(typeof(PackageEssenceAsset)) as PackageEssenceAsset;
199+
asset.importedBodyTrackingPackage = importedBodyTrackingPackage;
200+
AssetDatabase.CreateAsset(asset, WaveEssencePath + kBodyTrackingAsset);
201+
}
202+
AssetDatabase.SaveAssets();
203+
Debug.Log("UpdateAssetBodyTracking() " + WaveEssencePath + kBodyTrackingAsset + ", importedBodyTrackingPackage: " + asset.importedBodyTrackingPackage);
204+
}
205+
internal static bool IsBodyTrackingPackageOnceImported()
206+
{
207+
if (!File.Exists(WaveEssencePath + kBodyTrackingAsset))
208+
return false;
209+
210+
PackageEssenceAsset asset = AssetDatabase.LoadAssetAtPath(WaveEssencePath + kBodyTrackingAsset, typeof(PackageEssenceAsset)) as PackageEssenceAsset;
211+
return asset.importedBodyTrackingPackage;
212+
}
213+
#endregion
214+
185215
private static readonly string[] essenceKeywords = new string[]
186216
{
187217
"Wave",
@@ -195,7 +225,10 @@ internal static bool IsInteractionModePackageOnceImported()
195225
"XR",
196226
"Tracker",
197227
"ScenePerception",
198-
"TrackableMarker"
228+
"TrackableMarker",
229+
"URPMaterials",
230+
"Spectator",
231+
"BodyTracking",
199232
};
200233

201234
internal static UnityEditor.PackageManager.PackageInfo pi = null;
@@ -239,6 +272,12 @@ internal static void Init()
239272
internal const string kScenePerceptionPackage = "wave_essence_sceneperception.unitypackage";
240273
internal const string kTrackableMarkerPath = "/TrackableMarker";
241274
internal const string kTrackableMarkerPackage = "wave_essence_trackablemarker.unitypackage";
275+
internal const string kURPMaterialsPackage = "wave_essence_urpmaterials.unitypackage";
276+
internal const string kSpectatorPath = "/Spectator";
277+
internal const string kSpectatorPackage = "wave_essence_spectator.unitypackage";
278+
internal const string kBodyTrackingPath = "/BodyTracking";
279+
internal const string kBodyTrackingPackage = "wave_essence_bodytracking.unitypackage";
280+
internal const string kVrm1Package = "VRM-0.109.0_7aff.unitypackage";
242281

243282
internal static bool featureControllerModelImported = false;
244283
internal static bool featureInputModuleImported = false;
@@ -252,6 +291,8 @@ internal static void Init()
252291
internal static bool featureTrackerModelImported = false;
253292
internal static bool featureScenePerceptionImported = false;
254293
internal static bool featureTrackableMarkerImported = false;
294+
internal static bool featureSpectatorImported = false;
295+
internal static bool featureBodyTrackingImported = false;
255296

256297
internal static bool featureControllerModelNeedUpdate = false;
257298
internal static bool featureInputModuleNeedUpdate = false;
@@ -265,6 +306,8 @@ internal static void Init()
265306
internal static bool featureTrackerModelNeedUpdate = false;
266307
internal static bool featureScenePerceptionNeedUpdate = false;
267308
internal static bool featureTrackableMarkerNeedUpdate = false;
309+
internal static bool featureSpectatorNeedUpdate = false;
310+
internal static bool featureBodyTrackingNeedUpdate = false;
268311

269312
internal static bool hasFeatureNeedUpdate = false;
270313

@@ -282,6 +325,8 @@ internal static bool checkFeaturePackages()
282325
featureTrackerModelImported = Directory.Exists(WaveEssencePath + kTrackerModelPath);
283326
featureScenePerceptionImported = Directory.Exists(WaveEssencePath + kScenePerceptionPath);
284327
featureTrackableMarkerImported = Directory.Exists(WaveEssencePath + kTrackableMarkerPath);
328+
featureSpectatorImported = Directory.Exists(WaveEssencePath + kSpectatorPath);
329+
featureBodyTrackingImported = Directory.Exists(WaveEssencePath + kBodyTrackingPath);
285330

286331
if (pi == null)
287332
return false;
@@ -310,9 +355,12 @@ internal static bool checkFeaturePackages()
310355
!Directory.Exists(WaveEssencePath + kScenePerceptionPath + "/" + FAKE_VERSION);
311356
featureTrackableMarkerNeedUpdate = featureTrackableMarkerImported && !Directory.Exists(WaveEssencePath + kTrackableMarkerPath + "/" + pi.version) &&
312357
!Directory.Exists(WaveEssencePath + kTrackableMarkerPath + "/" + FAKE_VERSION);
358+
featureSpectatorNeedUpdate = featureSpectatorImported && !Directory.Exists(WaveEssencePath + kSpectatorPath + "/" + pi.version) && !Directory.Exists(WaveEssencePath + kSpectatorPath + "/" + FAKE_VERSION);
359+
featureBodyTrackingNeedUpdate = featureBodyTrackingImported && !Directory.Exists(WaveEssencePath + kBodyTrackingPath + "/" + pi.version) &&
360+
!Directory.Exists(WaveEssencePath + kBodyTrackingPath + "/" + FAKE_VERSION);
313361

314362
hasFeatureNeedUpdate = featureControllerModelNeedUpdate || featureInputModuleNeedUpdate || featureHandModelNeedUpdate || featureInteractionModeNeedUpdate || featureInteractionToolkitNeedUpdate ||
315-
featureCameraTextureNeedUpdate || featureCompositorLayerNeedUpdate || featureBundlePreviewNeedUpdate || featureRenderDocNeedUpdate || featureScenePerceptionNeedUpdate || featureTrackableMarkerNeedUpdate;
363+
featureCameraTextureNeedUpdate || featureCompositorLayerNeedUpdate || featureBundlePreviewNeedUpdate || featureRenderDocNeedUpdate || featureScenePerceptionNeedUpdate || featureTrackableMarkerNeedUpdate || featureSpectatorNeedUpdate || featureBodyTrackingNeedUpdate;
316364

317365
return hasFeatureNeedUpdate;
318366
}
@@ -344,6 +392,10 @@ public static void UpdateAllModules()
344392
UpdateModule(WaveEssencePath + kScenePerceptionPath, kScenePerceptionPackage);
345393
if (featureTrackableMarkerNeedUpdate)
346394
UpdateModule(WaveEssencePath + kTrackableMarkerPath, kTrackableMarkerPackage);
395+
if (featureSpectatorNeedUpdate)
396+
UpdateModule(WaveEssencePath + kSpectatorPath, kSpectatorPackage);
397+
if (featureBodyTrackingNeedUpdate)
398+
UpdateModule(WaveEssencePath + kBodyTrackingPath, kBodyTrackingPackage);
347399
}
348400

349401
public override void OnGUI(string searchContext)
@@ -361,6 +413,9 @@ public override void OnGUI(string searchContext)
361413
bool showTrackerModel = searchContext.Contains("Tracker");
362414
bool showScenePerception = searchContext.Contains("ScenePerception");
363415
bool showTrackableMarker = searchContext.Contains("TrackableMarker");
416+
bool showURPMaterials = searchContext.Contains("URPMaterials");
417+
bool showSpectator = searchContext.Contains("Spectator");
418+
bool showBodyTracking = searchContext.Contains("BodyTracking");
364419

365420
if (showControllerModel ||
366421
showInputModule ||
@@ -373,7 +428,10 @@ public override void OnGUI(string searchContext)
373428
showInteractionToolkit ||
374429
showTrackerModel ||
375430
showScenePerception ||
376-
showTrackableMarker)
431+
showTrackableMarker ||
432+
showURPMaterials ||
433+
showSpectator ||
434+
showBodyTracking)
377435
{
378436
hasKeyword = true;
379437
}
@@ -392,7 +450,10 @@ public override void OnGUI(string searchContext)
392450
* 10. Tracker Model
393451
* 11. Scene Perception
394452
* 12. Trackable Marker
395-
**/
453+
* 13. URP Materials
454+
* 14. Spectator
455+
* 15. Body Tracking
456+
**/
396457

397458
checkFeaturePackages();
398459

@@ -754,7 +815,100 @@ public override void OnGUI(string searchContext)
754815
GUILayout.EndVertical();
755816
}
756817

757-
}
818+
if (GraphicsSettings.renderPipelineAsset != null && (showURPMaterials || !hasKeyword))
819+
{
820+
GUILayout.BeginVertical(EditorStyles.helpBox);
821+
{
822+
GUILayout.Label("URP materials", EditorStyles.boldLabel);
823+
GUILayout.Label("These materials will overwrite the original contents."
824+
, new GUIStyle(EditorStyles.label) { wordWrap = true });
825+
GUILayout.Label("The feature will be imported at everywhere", EditorStyles.label);
826+
GUILayout.Space(5f);
827+
if (GUILayout.Button("Import Feature - URP Materials", GUILayout.ExpandWidth(false)))
828+
ImportModule(kURPMaterialsPackage, true);
829+
GUILayout.Space(5f);
830+
GUI.enabled = true;
831+
}
832+
GUILayout.EndVertical();
833+
}
834+
835+
if (showSpectator || !hasKeyword)
836+
{
837+
GUILayout.BeginVertical(EditorStyles.helpBox);
838+
{
839+
GUILayout.Label("Spectator", EditorStyles.boldLabel);
840+
GUILayout.Label("Note: This feature is currently in Beta.\n" +
841+
"Spectator is a feature that enables you to set the spectator camera to record the VR scene freely.\n"
842+
, new GUIStyle(EditorStyles.label) { wordWrap = true });
843+
GUILayout.Label("The feature will be imported at " + WaveEssencePath + kSpectatorPath, EditorStyles.label);
844+
GUILayout.Space(5f);
845+
GUI.enabled = !featureSpectatorImported || featureSpectatorNeedUpdate;
846+
if (featureSpectatorNeedUpdate)
847+
{
848+
if (GUILayout.Button("Update Feature - Spectator", GUILayout.ExpandWidth(false)))
849+
{
850+
// To check wherever the Spectator setup correctly in the Wave setting
851+
WaveXRSettings waveXRSettings = WaveXRSettings.GetInstance();
852+
if (waveXRSettings != null)
853+
{
854+
if (waveXRSettings.allowSpectatorCamera == false)
855+
{
856+
waveXRSettings.allowSpectatorCamera = true;
857+
}
858+
UpdateModule(WaveEssencePath + kSpectatorPath, kSpectatorPackage);
859+
}
860+
else
861+
{
862+
Debug.LogError("Import Spectator feature fail because cannot get the WaveXR" +
863+
"setting, please try again later.");
864+
}
865+
}
866+
}
867+
else
868+
{
869+
if (GUILayout.Button("Import Feature - Spectator", GUILayout.ExpandWidth(false)))
870+
ImportModule(kSpectatorPackage);
871+
}
872+
GUILayout.Space(5f);
873+
GUI.enabled = true;
874+
}
875+
GUILayout.EndVertical();
876+
}
877+
878+
if (showBodyTracking || !hasKeyword)
879+
{
880+
GUILayout.BeginVertical(EditorStyles.helpBox);
881+
{
882+
GUILayout.Label("Body Tracking", EditorStyles.boldLabel);
883+
GUILayout.Label(
884+
"The Body Tracking feature depends on Humanoid VRM plugin.",
885+
new GUIStyle(EditorStyles.label) { wordWrap = true });
886+
GUILayout.Label(
887+
"Note: Must using Unity Editor 2020.3.30f1 or newer version.",
888+
new GUIStyle(EditorStyles.label) { wordWrap = true });
889+
GUILayout.Label("This feature will be imported at " + WaveEssencePath + "/BodyTracking.\n" +
890+
"Import the Tracker Model package first before using this feature.", EditorStyles.label);
891+
GUILayout.Space(5f);
892+
GUI.enabled = (!featureBodyTrackingImported || featureBodyTrackingNeedUpdate) && featureTrackerModelImported;
893+
if (featureBodyTrackingNeedUpdate)
894+
{
895+
if (GUILayout.Button("Update Feature - Body Tracking", GUILayout.ExpandWidth(false)))
896+
UpdateModule(WaveEssencePath + kBodyTrackingPath, kBodyTrackingPackage);
897+
}
898+
else
899+
{
900+
if (GUILayout.Button("Import Feature - Body Tracking", GUILayout.ExpandWidth(false)))
901+
{
902+
ImportModule(kVrm1Package);
903+
ImportModule(kBodyTrackingPackage);
904+
}
905+
}
906+
GUILayout.Space(5f);
907+
GUI.enabled = true;
908+
}
909+
GUILayout.EndVertical();
910+
}
911+
}
758912

759913
public static void DeleteFolder(string path)
760914
{
@@ -852,11 +1006,11 @@ internal static void UpdateModule(string ModelPath, string packagePath)
8521006
AssetDatabase.ImportPackage(target, false);
8531007
}
8541008

855-
internal static void ImportModule(string packagePath)
1009+
internal static void ImportModule(string packagePath, bool interactive = false)
8561010
{
8571011
string target = Path.Combine("Packages/" + Constants.EssencePackageName + "/UnityPackages~", packagePath);
8581012
Debug.Log("Import: " + target);
859-
AssetDatabase.ImportPackage(target, false);
1013+
AssetDatabase.ImportPackage(target, interactive);
8601014
}
8611015

8621016
[SettingsProvider]
@@ -1093,6 +1247,27 @@ static List<Item> GetItems()
10931247
GetCurrent = () => { return EssenceSettingsProvider.featureTrackableMarkerNeedUpdate.ToString(); },
10941248
};
10951249

1250+
var URPMaterials = new Item("URP Materials")
1251+
{
1252+
IsShow = () => { return true; },
1253+
IsReady = () => { return true; },
1254+
GetCurrent = () => { return "Need Manual Update"; },
1255+
};
1256+
1257+
var Spectator = new Item("Spectator")
1258+
{
1259+
IsShow = () => { return EssenceSettingsProvider.featureSpectatorImported; },
1260+
IsReady = () => { return !EssenceSettingsProvider.featureSpectatorNeedUpdate; },
1261+
GetCurrent = () => { return EssenceSettingsProvider.featureSpectatorNeedUpdate.ToString(); },
1262+
};
1263+
1264+
var BodyTracking = new Item("Body Tracking")
1265+
{
1266+
IsShow = () => { return EssenceSettingsProvider.featureBodyTrackingImported; },
1267+
IsReady = () => { return !EssenceSettingsProvider.featureBodyTrackingNeedUpdate; },
1268+
GetCurrent = () => { return EssenceSettingsProvider.featureBodyTrackingNeedUpdate.ToString(); },
1269+
};
1270+
10961271
return new List<Item>()
10971272
{
10981273
ControllerModel,
@@ -1105,7 +1280,10 @@ static List<Item> GetItems()
11051280
RenderDoc,
11061281
InteractionToolkit,
11071282
ScenePerception,
1108-
TrackableMarker
1283+
TrackableMarker,
1284+
URPMaterials,
1285+
Spectator,
1286+
BodyTracking,
11091287
};
11101288
}
11111289

com.htc.upm.wave.essence/Editor/EssenceSettingsProvider.cs.meta

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

com.htc.upm.wave.essence/Editor/PackageEssenceAsset.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public class PackageEssenceAsset : ScriptableObject
1212
public bool importedHandModelPackage = false;
1313
public bool importedInteractionModePackage = false;
1414
public bool importedTrackerModelPackage = false;
15+
public bool importedBodyTrackingPackage = false;
1516
}
1617
}
1718
#endif

com.htc.upm.wave.essence/Editor/PackageEssenceAsset.cs.meta

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

0 commit comments

Comments
 (0)