/// <summary> /// Connects to the ARCore service. /// </summary> /// <param name="sessionConfig">The session configuration to connect with.</param> /// <param name="onComplete">A callback for when the result of the connection attempt is known.</param> private void _ConnectToService(SessionConfig sessionConfig, Action <SessionConnectionState> onComplete) { // Connect the ARCore session. UnityTango.Config tangoConfig = _GetSessionTangoConfiguration(sessionConfig); if (!UnityTango.Device.Connect(tangoConfig)) { ARDebug.LogError("Failed to connect the ARSession."); SessionManager.ConnectionState = SessionConnectionState.ConnectToServiceFailed; onComplete(SessionConnectionState.ConnectToServiceFailed); return; } if (sessionConfig.m_enableARBackground) { // _SetupVideoOverlay(); } SessionManager.ConnectionState = SessionConnectionState.Connected; onComplete(SessionManager.ConnectionState); }
private UnityTango.Config _GetSessionTangoConfiguration(SessionConfig sessionConfig) { const string DRIFT_CORRECTION_FLAG = "config_enable_drift_correction"; const string PLANE_DETECTION_FLAG = "config_experimental_enable_plane_detection"; const string POINTCLOUD_FROM_VIO_FLAG = "config_experimental_enable_depth_from_vio"; const string POINTCLOUD_FLAG = "config_enable_depth"; const string POINTCLOUD_TYPE_FLAG = "config_depth_mode"; const int XYZC_POINTCLOUD_MODE = 0; UnityTango.Config tangoConfig = new UnityTango.Config(); // Set defaults tangoConfig.enableMotionTracking = true; tangoConfig.enableDepth = false; tangoConfig.enableColorCamera = sessionConfig.m_enableARBackground; tangoConfig.areaLearningMode = UnityTango.AreaLearningMode.None; tangoConfig.AddConfigParameter(DRIFT_CORRECTION_FLAG, true); tangoConfig.AddConfigParameter(POINTCLOUD_FROM_VIO_FLAG, sessionConfig.m_enablePointcloud); tangoConfig.AddConfigParameter(POINTCLOUD_TYPE_FLAG, XYZC_POINTCLOUD_MODE); tangoConfig.AddConfigParameter(POINTCLOUD_FLAG, sessionConfig.m_enablePointcloud); tangoConfig.AddConfigParameter(PLANE_DETECTION_FLAG, sessionConfig.m_enablePlaneFinding); return(tangoConfig); }