public override void Initialize() { base.Initialize(); if (!Application.isPlaying || Application.isEditor || meshSubsystem != null) { return; } descriptors.Clear(); SubsystemManager.GetSubsystemDescriptors(descriptors); if (descriptors.Count > 0) { var descriptorToUse = descriptors[0]; if (descriptors.Count > 1) { var typeOfD = typeof(XRMeshSubsystemDescriptor); Debug.LogWarning($"Found {descriptors.Count} {typeOfD.Name}s. Using \"{descriptorToUse.id}\""); } meshSubsystem = descriptorToUse.Create(); } if (meshSubsystem == null) { throw new Exception("Failed to start Lumin Mesh Subsystem!"); } LuminApi.UnityMagicLeap_MeshingSetBatchSize(16); var levelOfDetail = MLSpatialMapper.LevelOfDetail.Medium; if (MeshLevelOfDetail == SpatialAwarenessMeshLevelOfDetail.Fine) { levelOfDetail = MLSpatialMapper.LevelOfDetail.Maximum; } LuminApi.UnityMagicLeap_MeshingSetLod(levelOfDetail); var settings = GetMeshingSettings(); LuminApi.UnityMagicLeap_MeshingUpdateSettings(settings); }
private void ConfigureObserverVolume() { LuminApi.UnityMagicLeap_MeshingSetBounds(ObserverOrigin, ObserverOrientation, ObservationExtents); }