unity-hololens2-MRTK2.8.x-AzureSpatialAnchor

155 阅读1分钟
  • AzureSpatialAnchor空间定位点(使用粗略重新局部化发现附近定位点) 遇到问题参考git issue

    1. 根据官网文档进行代码配置,可以只单独使用wifi或蓝牙信标
      // Create the sensor fingerprint provider
      PlatformLocationProvider sensorProvider = new PlatformLocationProvider();
    
      // Allow GPS
      sensorProvider.Sensors.GeoLocationEnabled = true;
    
      // Allow WiFi scanning
      sensorProvider.Sensors.WifiEnabled = true;
    
      // Allow a set of known BLE beacons
      sensorProvider.Sensors.BluetoothEnabled = true;
      sensorProvider.Sensors.KnownBeaconProximityUuids = new[]
      {
          "22e38f1a-c1b3-452b-b5ce-fdb0f39535c1",
          "a63819b9-8b7b-436d-88ec-ea5d8db2acb0",
          . . .
      };
      
      // Set the session's sensor fingerprint provider
      cloudSpatialAnchorSession.LocationProvider = sensorProvider;
    
      // Configure the near-device criteria
      NearDeviceCriteria nearDeviceCriteria = new NearDeviceCriteria();
      nearDeviceCriteria.DistanceInMeters = 5;
      nearDeviceCriteria.MaxResultCount = 25;
    
      // Set the session's locate criteria
      AnchorLocateCriteria anchorLocateCriteria = new AnchorLocateCriteria();
      anchorLocateCriteria.NearDevice = nearDeviceCriteria;
      cloudSpatialAnchorSession.CreateWatcher(anchorLocateCriteria);
    
    1. 使用wifi进行定位,需要配置应用开启WifiControl权限,这个权限在unity中不能设置,unity先进行打包。
    2. 打包成功后,在打包的文件夹中找到Package.appxmanifest文件,这个文件是UWP应用的权限配置文件,在文件底部将此代码粘贴进行(文件打开方式使用XML编辑打开或使用vscode打开此文件)。
      <DeviceCapability Name="wiFiControl"/>
    
  • 自定义事件逻辑(MRTK UX对象)

    1. MRTK提供的UX对象自带Interactable脚本的游戏对象
      // 首先继承 ReceiverBaseMonoBehavior 类
      public class CustomInteractable_lookRobotInfoBtn : ReceiverBaseMonoBehavior
      //重写OnClick事件
       public override void OnClick(InteractableStates state, Interactable source, IMixedRealityPointer pointer = null)
           {
               Debug.Log("自定义点击事件逻辑");
           }
       }
      
  • 项目打包

    1. unity HoloLens2项目打包后,在visual studio上生成部署项目后报错(xxxx.h头文件找不到)。可先去查看unity版本与项目包管理中的XR plugin插件版本(unity 2021.3对应XR plugin 1.7 , XR plugin1.7版本导致头文件找不到)。 解决方法: 降低unity与XR plugin插件版本。
  • 安装**NuGetForUnity** 包管理系统 image.png