Exemple #1
0
        public IEnumerator Start()
        {
            StartCoroutine(Camera.main.fadeIn(3));

            animator = GetComponent <EditorAnimator>();

            // Hook GVR controller ray caster
            controllerRaycaster = FindObjectOfType <GvrPointerPhysicsRaycaster>();
            // Initialize GVR controller swipe monitor
            GvrSwipeMonitor swipeMonitor = FindObjectOfType <GvrSwipeMonitor>();

            swipeMonitor.onSwipeRight += onSwipeRight;
            swipeMonitor.onSwipeLeft  += onSwipeLeft;

            // Init Salesforce client & log in
            sfController = new SalesforceController(this, GetComponent <SalesforceClient>());
            Coroutine <bool> loginRoutine = this.StartCoroutine <bool>(sfController.login());

            yield return(loginRoutine.coroutine);

            loginRoutine.getValue();

            // Load data from Salesforce
            yield return(loadDataFromSalesforce());

            // Load brief movie based on configuration
            FindObjectOfType <BriefVideoMonitor>().loadBrief(ApplicationState.configuration);
        }
        public IEnumerator Start()
        {
            loginUI = FindObjectOfType <LoginUI>();

            // Init SF controller
            SalesforceClient client = GetComponent <SalesforceClient>();

            if (ApplicationState.sfConnection != null)
            {
                client.setConnection(ApplicationState.sfConnection);
            }
            sfController = new SalesforceController(this, client);

            // Is this the first run?
            if (ApplicationState.sfConnection == null)
            {
                // Show login screen
                yield return(FindObjectOfType <VRUtil>().enableVrMode(false));

                loginUI.setSalesforceController(sfController);
                StartCoroutine(loginUI.fadeIn());
            }
            else             // Returning to menu, display config list
            {
                // Destroy non-VR UI
                Destroy(loginUI.gameObject);
                Destroy(FindObjectOfType <StandaloneInputModule>());
                // Enable VR UI
                StartCoroutine(Camera.main.fadeIn(3));
                setVrUiScreen(configurationSelectionContainer.name);
                yield return(initConfigSelectionView());

                yield return(transitionUi(true));
            }
        }
Exemple #3
0
        public static IEnumerator loadDefaultTestConfiguration(MonoBehaviour owner, SalesforceController sfController)
        {
            Coroutine <Configuration> configRoutine = owner.StartCoroutine <Configuration>(sfController.getConfiguration("a020Y000001AyEKQA0"));

            yield return(configRoutine.coroutine);

            ApplicationState.configuration = configRoutine.getValue();
            Debug.LogWarning("Testing with configuration " + ApplicationState.configuration.name);
        }
        IEnumerator Start()
        {
            StartCoroutine(cameraContainer.GetComponentInChildren <Camera>().fadeIn(3));
            StartCoroutine(spawnNavigationNodes());

            // Init Salesforce client & log in
            sfController = new SalesforceController(this, GetComponent <SalesforceClient>());
            Coroutine <bool> loginRoutine = this.StartCoroutine <bool>(sfController.login());

            yield return(loginRoutine.coroutine);

            loginRoutine.getValue();

            // Load data from Salesforce
            yield return(loadDataFromSalesforce());
        }
Exemple #5
0
        public static IEnumerator loadDataFromSalesforce(MonoBehaviour owner, SalesforceController sfController)
        {
            // Fetch object definitions
            CacheManager.getObjectDefinitions().clear();
            Coroutine <List <ObjectDefinition> > defRoutine = owner.StartCoroutine <List <ObjectDefinition> >(sfController.getObjectDefinitions());

            yield return(defRoutine.coroutine);

            List <ObjectDefinition> objectDefinitions = defRoutine.getValue();

            CacheManager.getObjectDefinitions().put(objectDefinitions);
            Debug.Log("Loaded " + objectDefinitions.Count + " object definitions");

            // Fetch object instances
            CacheManager.getObjectInstances().clear();
            Coroutine <List <ObjectInstance> > instRoutine = owner.StartCoroutine <List <ObjectInstance> >(sfController.getObjectInstancesFromConfiguration(ApplicationState.configuration.id));

            yield return(instRoutine.coroutine);

            List <ObjectInstance> objectInstances = instRoutine.getValue();

            CacheManager.getObjectInstances().put(objectInstances);
            Debug.Log("Loaded " + objectInstances.Count + " object instances from configuration " + ApplicationState.configuration.name);

            // Only preload remote object definitions that are in use
            foreach (ObjectDefinition definition in objectDefinitions)
            {
                if (definition.isRemotePrefab())
                {
                    bool isDefinitionUsed = false;
                    for (int i = 0; !isDefinitionUsed && i < objectInstances.Count; i++)
                    {
                        if (objectInstances[i].definition.id == definition.id)
                        {
                            isDefinitionUsed = true;
                        }
                    }
                    if (isDefinitionUsed)
                    {
                        yield return(definition.preloadRemotePrefab());
                    }
                }
            }
        }