Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        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);
        }