private static void OnPackageImportCompleted(string packageName)
        {
            WRLDARKitSetupHelper wrldARKitSetupHelper = GameObject.FindObjectOfType <WRLDARKitSetupHelper>();

            if (PackageName.Equals(packageName) && wrldARKitSetupHelper != null)
            {
                SetupARKitScene();
            }
        }
        private static void SetupUnityARCameraNearFar(WRLDARKitSetupHelper wrldARKitSetupHelper)
        {
            System.Type arCameraNearFarType = GetType("UnityARCameraNearFar");

            if (arCameraNearFarType != null)
            {
                wrldARKitSetupHelper.MainCamera.gameObject.AddComponent(arCameraNearFarType);
            }
            else
            {
                Debug.LogError("UnityARCameraNearFar not found in ARKit plugin.");
            }
        }
        private static void SetupARKitScene()
        {
            WRLDARKitSetupHelper wrldARKitSetupHelper = GameObject.FindObjectOfType <WRLDARKitSetupHelper>();

            EditorSceneManager.MarkAllScenesDirty();

            SetupUnityARCameraManager(wrldARKitSetupHelper);

            SetupUnityARCameraNearFar(wrldARKitSetupHelper);

            SetupUnityARVideo(wrldARKitSetupHelper);

            SetupWRLDARKitAnchorHandler(wrldARKitSetupHelper);

            GameObject.DestroyImmediate(wrldARKitSetupHelper.gameObject);
        }
        private static void SetupUnityARCameraManager(WRLDARKitSetupHelper wrldARKitSetupHelper)
        {
            System.Type arCameraManagerType = GetType("UnityARCameraManager");

            if (arCameraManagerType != null)
            {
                GameObject arCameraManagerObject = new GameObject("ARCameraManager");
                var        comp  = System.Convert.ChangeType(arCameraManagerObject.AddComponent(arCameraManagerType), arCameraManagerType);
                FieldInfo  field = comp.GetType().GetField("m_camera");
                field.SetValue(comp, wrldARKitSetupHelper.MainCamera);
            }
            else
            {
                Debug.LogError("UnityARCameraManager not found in ARKit plugin.");
            }
        }
Example #5
0
        private static void SetupARKitScene()
        {
            WRLDARKitSetupHelper wrldARKitSetupHelper = GameObject.FindObjectOfType <WRLDARKitSetupHelper>();

            EditorSceneManager.MarkAllScenesDirty();

            SetupWrldMap(wrldARKitSetupHelper.wrldMap, wrldARKitSetupHelper.streamingCamera, wrldARKitSetupHelper.latitudeDegrees,
                         wrldARKitSetupHelper.longitudeDegrees, wrldARKitSetupHelper.materialDirectory);
            SetupGeographicsTransforms(wrldARKitSetupHelper.cubes);

            Camera arCamera = wrldARKitSetupHelper.mainCamera;

            SetupUnityARCameraManager(arCamera);
            SetupUnityARCameraNearFar(arCamera.gameObject);
            SetupUnityARVideo(arCamera.gameObject);

            GameObject.DestroyImmediate(wrldARKitSetupHelper.gameObject);
        }
        private static void SetupWRLDARKitAnchorHandler(WRLDARKitSetupHelper wrldARKitSetupHelper)
        {
            System.Type arAnchorHandler = GetType("WRLDARKitAnchorHandler");

            if (arAnchorHandler != null)
            {
                GameObject arAnchorObject = new GameObject("WRLDARKitAnchorHandler");
                var        comp           = System.Convert.ChangeType(arAnchorObject.AddComponent(arAnchorHandler), arAnchorHandler);
                FieldInfo  mapParentField = comp.GetType().GetField("wrldMapParent");
                mapParentField.SetValue(comp, wrldARKitSetupHelper.WrldMapParent);
                FieldInfo mapMaskField = comp.GetType().GetField("wrldMapMask");
                mapMaskField.SetValue(comp, wrldARKitSetupHelper.WrldMapMask);
            }
            else
            {
                Debug.LogError("WRLDARKitAnchorHandler is missing.");
            }
        }