Exemplo n.º 1
0
    void Start()
    {
        QualitySettings.vSyncCount  = 0;
        Application.targetFrameRate = 60;

        imageTrackablesMap.Clear();
        ImageTrackableBehaviour[] imageTrackables = FindObjectsOfType <ImageTrackableBehaviour>();
        foreach (var trackable in imageTrackables)
        {
            imageTrackablesMap.Add(trackable.TrackableName, trackable);
            Debug.Log("Trackable add: " + trackable.TrackableName);
        }

        AddTrackerData();
        TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_IMAGE);
        StartCamera();

        // For see through smart glass setting
        if (ConfigurationScriptableObject.GetInstance().WearableType == WearableCalibration.WearableType.OpticalSeeThrough)
        {
            WearableManager.GetInstance().GetDeviceController().SetStereoMode(true);

            CameraBackgroundBehaviour cameraBackground = FindObjectOfType <CameraBackgroundBehaviour>();
            cameraBackground.gameObject.SetActive(false);

            WearableManager.GetInstance().GetCalibration().CreateWearableEye(Camera.main.transform);

            // BT-300 screen is splited in half size, but R-7 screen is doubled.
            if (WearableManager.GetInstance().GetDeviceController().IsSideBySideType() == true)
            {
                // Do something here. For example resize gui to fit ratio
            }
        }
    }
    void Start()
    {
        QualitySettings.vSyncCount  = 0;
        Application.targetFrameRate = 60;

        AddTrackerData();
        TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_IMAGE);
        StartCamera();

        // For see through smart glass setting
        if (ConfigurationScriptableObject.GetInstance().WearableType == WearableCalibration.WearableType.OpticalSeeThrough)
        {
            WearableManager.GetInstance().GetDeviceController().SetStereoMode(true);

            cameraBackgroundBehaviour.gameObject.SetActive(false);

            WearableManager.GetInstance().GetCalibration().CreateWearableEye(Camera.main.transform);

            // BT-300 screen is splited in half size, but R-7 screen is doubled.
            if (WearableManager.GetInstance().GetDeviceController().IsSideBySideType() == true)
            {
                // Do something here. For example resize gui to fit ratio
            }
        }
    }
Exemplo n.º 3
0
    void Start()
    {
        instantTrackable = FindObjectOfType <InstantTrackableBehaviour>();
        if (instantTrackable == null)
        {
            return;
        }

        instantTrackable.OnTrackFail();
        StartCamera();

        TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_INSTANT);
        SensorDevice.GetInstance().Start();

        // For see through smart glass setting
        if (ConfigurationScriptableObject.GetInstance().WearableType == WearableCalibration.WearableType.OpticalSeeThrough)
        {
            WearableManager.GetInstance().GetDeviceController().SetStereoMode(true);

            CameraBackgroundBehaviour cameraBackground = FindObjectOfType <CameraBackgroundBehaviour>();
            cameraBackground.gameObject.SetActive(false);

            WearableManager.GetInstance().GetCalibration().CreateWearableEye(Camera.main.transform);

            // BT-300 screen is splited in half size, but R-7 screen is doubled.
            if (WearableManager.GetInstance().GetDeviceController().IsSideBySideType() == true)
            {
                // Do something here. For example resize gui to fit ratio
            }
        }
    }
Exemplo n.º 4
0
    void Start()
    {
        MarkerTrackerBehaviour[] markerTrackables = FindObjectsOfType <MarkerTrackerBehaviour>();

        foreach (var trackable in markerTrackables)
        {
            trackable.SetMarkerTrackerFileName(trackable.MarkerID, trackable.MarkerSize);
            markerTrackableMap.Add(trackable.MarkerID, trackable);
            Debug.Log("Trackable id: " + trackable.MarkerID);
            Debug.Log(trackable.TrackerDataFileName);
        }
        AddTrackerData();
        StartCamera();
        TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_MARKER);

        // For see through smart glass setting
        if (ConfigurationScriptableObject.GetInstance().WearableType == WearableCalibration.WearableType.OpticalSeeThrough)
        {
            WearableManager.GetInstance().GetDeviceController().SetStereoMode(true);

            CameraBackgroundBehaviour cameraBackground = FindObjectOfType <CameraBackgroundBehaviour>();
            cameraBackground.gameObject.SetActive(false);

            WearableManager.GetInstance().GetCalibration().CreateWearableEye(Camera.main.transform);

            // BT-300 screen is splited in half size, but R-7 screen is doubled.
            if (WearableManager.GetInstance().GetDeviceController().IsSideBySideType() == true)
            {
                // Do something here. For example resize gui to fit ratio
            }
        }
    }
Exemplo n.º 5
0
    void Start()
    {
        QualitySettings.vSyncCount  = 0;
        Application.targetFrameRate = 60;

        imageTrackablesMap.Clear();
        ImageTrackableBehaviour[] imageTrackables = FindObjectsOfType <ImageTrackableBehaviour>();
        foreach (var trackable in imageTrackables)
        {
            imageTrackablesMap.Add(trackable.TrackableName, trackable);
            Debug.Log("Trackable add: " + trackable.TrackableName);
        }


        TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_IMAGE);
        AddTrackerData();

        videoPlayer.playOnAwake          = false;
        videoPlayer.isLooping            = true;
        videoPlayer.sendFrameReadyEvents = true;
        videoPlayer.frameReady          += OnNewFrame;

        if (Application.platform == RuntimePlatform.Android)
        {
            StartCoroutine(MaxstARUtil.ExtractAssets("MaxstAR/tracking_video.mp4", (filePah) =>
            {
                videoPlayer.url = filePah;
                SwitchCameraToVideo(CameraMode);
            }));
        }
        else
        {
            videoPlayer.url = Application.streamingAssetsPath + "/MaxstAR/tracking_video.mp4";
            SwitchCameraToVideo(CameraMode);
        }

        // For see through smart glass setting
        if (ConfigurationScriptableObject.GetInstance().WearableType == WearableCalibration.WearableType.OpticalSeeThrough)
        {
            WearableManager.GetInstance().GetDeviceController().SetStereoMode(true);

            CameraBackgroundBehaviour cameraBackground = FindObjectOfType <CameraBackgroundBehaviour>();
            cameraBackground.gameObject.SetActive(false);

            WearableManager.GetInstance().GetCalibration().CreateWearableEye(Camera.main.transform);

            // BT-300 screen is splited in half size, but R-7 screen is doubled.
            if (WearableManager.GetInstance().GetDeviceController().IsSideBySideType() == true)
            {
                // Do something here. For example resize gui to fit ratio
            }
        }
    }
Exemplo n.º 6
0
    void Start()
    {
        QualitySettings.vSyncCount  = 0;
        Application.targetFrameRate = 60;

        cloudTrackablesMap.Clear();
        CloudTrackableBehaviour[] cloudTrackables = FindObjectsOfType <CloudTrackableBehaviour>();
        foreach (var trackable in cloudTrackables)
        {
            if (trackable.CloudName == "")
            {
                Debug.LogError("Defined Name is must be named.");
                continue;
            }

            if (cloudTrackablesMap.ContainsKey(trackable.CloudName))
            {
                List <CloudTrackableBehaviour> cloudTrackableList = cloudTrackablesMap[trackable.CloudName];
                cloudTrackableList.Add(trackable);
                cloudTrackablesMap.Add(trackable.CloudName, cloudTrackableList);
            }
            else
            {
                List <CloudTrackableBehaviour> cloudTrackableList = new List <CloudTrackableBehaviour>();
                cloudTrackableList.Add(trackable);
                cloudTrackablesMap.Add(trackable.CloudName, cloudTrackableList);
            }
        }

        StartCamera();

        // Add SecretId and SecretKey.
        TrackerManager.GetInstance().setCloudRecognitionSecretIdAndSecretKey("", "");
        TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_CLOUD_RECOGNIZER);

        // For see through smart glass setting
        if (ConfigurationScriptableObject.GetInstance().WearableType == WearableCalibration.WearableType.OpticalSeeThrough)
        {
            WearableManager.GetInstance().GetDeviceController().SetStereoMode(true);

            CameraBackgroundBehaviour cameraBackground = FindObjectOfType <CameraBackgroundBehaviour>();
            cameraBackground.gameObject.SetActive(false);

            WearableManager.GetInstance().GetCalibration().CreateWearableEye(Camera.main.transform);

            // BT-300 screen is splited in half size, but R-7 screen is doubled.
            if (WearableManager.GetInstance().GetDeviceController().IsSideBySideType() == true)
            {
                // Do something here. For example resize gui to fit ratio
            }
        }
    }
    public void ChangeCameraPosition()
    {
        AbstractConfigurationScriptableObject conf = ConfigurationScriptableObject.GetInstance();

        if (conf.CameraType == CameraDevice.CameraType.Face)
        {
            conf.CameraType = CameraDevice.CameraType.Rear;
            CameraDevice.GetInstance().Stop();
            CameraDevice.GetInstance().Start();
        }
        else
        {
            conf.CameraType = CameraDevice.CameraType.Face;
            CameraDevice.GetInstance().Stop();
            CameraDevice.GetInstance().Start();
        }
    }
Exemplo n.º 8
0
        void Awake()
        {
            base.Init();

#if UNITY_ANDROID
            androidEngine = new AndroidEngine();
#elif UNITY_IOS
            string licenseKey = ConfigurationScriptableObject.GetInstance().LicenseKey;
            NativeAPI.init(licenseKey);
#endif

#if UNITY_EDITOR
            // Find arsdk_version.txt
            // if not exist file create file and write arsdk version
            // if file exist write
            System.IO.File.WriteAllText(System.IO.Path.Combine(Application.streamingAssetsPath, "arsdk_version.txt"), MaxstAR.GetVersion());
#endif
        }
Exemplo n.º 9
0
    void Start()
    {
        QualitySettings.vSyncCount  = 0;
        Application.targetFrameRate = 60;

        instantTrackable = FindObjectOfType <InstantTrackableBehaviour>();
        if (instantTrackable == null)
        {
            return;
        }

        instantTrackable.OnTrackFail();

        if (TrackerManager.GetInstance().IsFusionSupported())
        {
            CameraDevice.GetInstance().SetARCoreTexture();
            CameraDevice.GetInstance().SetFusionEnable();
            CameraDevice.GetInstance().Start();
            TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_INSTANT_FUSION);
        }
        else
        {
            TrackerManager.GetInstance().RequestARCoreApk();
        }

        // For see through smart glass setting
        if (ConfigurationScriptableObject.GetInstance().WearableType == WearableCalibration.WearableType.OpticalSeeThrough)
        {
            WearableManager.GetInstance().GetDeviceController().SetStereoMode(true);

            CameraBackgroundBehaviour cameraBackground = FindObjectOfType <CameraBackgroundBehaviour>();
            cameraBackground.gameObject.SetActive(false);

            WearableManager.GetInstance().GetCalibration().CreateWearableEye(Camera.main.transform);

            // BT-300 screen is splited in half size, but R-7 screen is doubled.
            if (WearableManager.GetInstance().GetDeviceController().IsSideBySideType() == true)
            {
                // Do something here. For example resize gui to fit ratio
            }
        }
    }
Exemplo n.º 10
0
        public AndroidEngine()
        {
#if !UNITY_EDITOR
            if (currentActivity == null || maxstARClass == null)
            {
                AndroidJavaClass javaUnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
                currentActivity = javaUnityPlayer.GetStatic <AndroidJavaObject>("currentActivity");
                if (currentActivity != null)
                {
                    string licenseKey = ConfigurationScriptableObject.GetInstance().LicenseKey;
                    maxstARClass = new AndroidJavaClass("com.maxst.ar.MaxstARInitializer");
                    maxstARClass.CallStatic("init", currentActivity, licenseKey);
                    maxstARClass.CallStatic("setCameraApi", 1);
                }
                else
                {
                    Debug.Log("No Activity");
                }
            }
#endif
        }
Exemplo n.º 11
0
        public override void OnInspectorGUI()
        {
            if (PrefabUtility.GetPrefabType(target) == PrefabType.Prefab)
            {
                return;
            }

            bool isDirty = false;

            arManager = (ARManager)target;

            EditorGUILayout.Separator();

            AbstractARManager.WorldCenterMode oldWorldCenterMode = arManager.WorldCenterModeSetting;
            AbstractARManager.WorldCenterMode newWorldCenterMode =
                (AbstractARManager.WorldCenterMode)EditorGUILayout.EnumPopup("World Center Mode", arManager.WorldCenterModeSetting);

            if (oldWorldCenterMode != newWorldCenterMode)
            {
                arManager.SetWorldCenterMode(newWorldCenterMode);
                isDirty = true;
            }

            EditorGUILayout.Separator();

            GUIContent content = new GUIContent("Configuration");

            if (GUILayout.Button(content, GUILayout.MaxWidth(Screen.width), GUILayout.MaxHeight(maxHeight)))
            {
                Selection.activeObject = ConfigurationScriptableObject.GetInstance();
            }
            GUILayout.Space(10);

            if (GUI.changed && isDirty)
            {
                EditorUtility.SetDirty(arManager);
                EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
            }
        }
    void Start()
    {
        QualitySettings.vSyncCount  = 0;
        Application.targetFrameRate = 60;

        QrCodeTrackablesMap.Clear();
        QrCodeTrackableBehaviour[] QrCodeTrackables = FindObjectsOfType <QrCodeTrackableBehaviour>();

        if (QrCodeTrackables.Length > 0)
        {
            if (QrCodeTrackables[0].QrCodeSearchingWords.Length < 1)
            {
                List <QrCodeTrackableBehaviour> qrCodeList = new List <QrCodeTrackableBehaviour>();

                qrCodeList.Add(QrCodeTrackables[0]);
                QrCodeTrackablesMap.Add(defaultSearchingWords, qrCodeList);
            }
        }

        foreach (var trackable in QrCodeTrackables)
        {
            string key = trackable.QrCodeSearchingWords;

            if (key.Length < 1)
            {
                key = defaultSearchingWords;
            }

            if (QrCodeTrackablesMap.ContainsKey(key))
            {
                bool isNew = true;

                foreach (var QrCodeTrackableList in QrCodeTrackablesMap[key])
                {
                    if (trackable.name.Equals(QrCodeTrackableList.name))
                    {
                        isNew = false;
                        break;
                    }
                }

                if (isNew)
                {
                    QrCodeTrackablesMap[defaultSearchingWords].Add(trackable);
                }
            }
            else
            {
                List <QrCodeTrackableBehaviour> qrCodeList = new List <QrCodeTrackableBehaviour>();

                qrCodeList.Add(trackable);
                QrCodeTrackablesMap.Add(key, qrCodeList);
            }

            Debug.Log("Trackable add: " + trackable.TrackableName);
        }

        if (TrackerManager.GetInstance().IsFusionSupported())
        {
            CameraDevice.GetInstance().SetARCoreTexture();
            TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_QR_FUSION);
            AddTrackerData();
        }
        else
        {
            TrackerManager.GetInstance().RequestARCoreApk();
        }

        // For see through smart glass setting
        if (ConfigurationScriptableObject.GetInstance().WearableType == WearableCalibration.WearableType.OpticalSeeThrough)
        {
            WearableManager.GetInstance().GetDeviceController().SetStereoMode(true);

            CameraBackgroundBehaviour cameraBackground = FindObjectOfType <CameraBackgroundBehaviour>();
            cameraBackground.gameObject.SetActive(false);

            WearableManager.GetInstance().GetCalibration().CreateWearableEye(Camera.main.transform);

            // BT-300 screen is splited in half size, but R-7 screen is doubled.
            if (WearableManager.GetInstance().GetDeviceController().IsSideBySideType() == true)
            {
                // Do something here. For example resize gui to fit ratio
            }
        }
    }
        public override void OnInspectorGUI()
        {
            if (PrefabUtility.GetPrefabType(target) == PrefabType.Prefab)
            {
                return;
            }

            configuration = (ConfigurationScriptableObject)target;

            isDirty = false;

            licenseFold = EditorGUILayout.Foldout(licenseFold, "License Key Setting");
            if (licenseFold)
            {
                EditorGUILayout.LabelField("License key");
                string licenseKey = configuration.LicenseKey;
                configuration.LicenseKey = EditorGUILayout.TextArea(licenseKey, GUILayout.MaxHeight(40));
                EditorGUILayout.HelpBox("Please register your app at https://developer.maxst.com/.", MessageType.Info);
                EditorGUILayout.Space();
                if (string.Equals(licenseKey, configuration.LicenseKey) == false)
                {
                    isDirty = true;
                }
            }

            cameraFold = EditorGUILayout.Foldout(cameraFold, "Camera Settings");
            if (cameraFold)
            {
                CameraDevice.CameraType cameraType = configuration.CameraType;
                configuration.CameraType = (CameraDevice.CameraType)EditorGUILayout.EnumPopup("Mobile Camera Type", cameraType);
                EditorGUILayout.HelpBox("Camera settings in mobile app", MessageType.Info);
                EditorGUILayout.Space();
                if (string.Equals(cameraType, configuration.CameraType) == false)
                {
                    isDirty = true;
                }

                int webcamType = configuration.WebcamType;
                configuration.WebcamType = EditorGUILayout.Popup("Webcam Type", webcamType, LoadWebcamDeviceList());
                EditorGUILayout.HelpBox("Webcam settings in Editor mode.", MessageType.Info);
                EditorGUILayout.Space();
                if (string.Equals(webcamType, configuration.WebcamType) == false)
                {
                    isDirty = true;
                }

                CameraDevice.CameraResolution cameraResolution = configuration.CameraResolution;
                configuration.CameraResolution = (CameraDevice.CameraResolution)EditorGUILayout.EnumPopup("Camera Resolution", cameraResolution);
                EditorGUILayout.HelpBox("Please select a supported resolution.", MessageType.Info);
                EditorGUILayout.Space();
                if (string.Equals(cameraResolution, configuration.CameraResolution) == false)
                {
                    isDirty = true;
                }

                WearableCalibration.WearableType wearableType = configuration.WearableType;
                configuration.WearableType = (WearableCalibration.WearableType)EditorGUILayout.EnumPopup("Wearable Type", wearableType);
                EditorGUILayout.HelpBox("Please select a wearable type.", MessageType.Info);
                EditorGUILayout.Space();
                if (string.Equals(wearableType, configuration.WearableType) == false)
                {
                    isDirty = true;
                }
            }

            if (GUI.changed && isDirty)
            {
                EditorUtility.SetDirty(configuration);
                EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
            }
        }