Пример #1
0
        private void OnSDKReady()
        {
            if (MenuController.ConfigToLoad)
            {
                MainNav.Game = MenuController.ConfigToLoad.Game;
            }
            else
            {
                MainNav.Game = Game.Duel;
            }
            MainNav.Setup(Sdk, false);
            MainNav.OnMenuShown     += OnMenuShown;
            MainNav.OnMenuHidden    += OnMenuHidden;
            MainNav.OnQuitButton    += OnMenuQuit;
            MainNav.OnRestartButton += OnMenuRestart;

            // Add the audio Listener
            Sdk.StereoCamera.gameObject.AddComponent <AkAudioListener>();

            // Setup Controllers
            ControllerPeripheral controller = new ControllerPeripheral(VisionSDK.ControllerName, null, null, container.GetSavedSaberColorID());

            controller.UsePositionPrediction = UsePrediction;
            Sdk.Connections.AddPeripheral(controller);

            // Input Events
            Sdk.Input.OnButtonUp += OnButtonUp;
        }
Пример #2
0
        IEnumerator Start()
        {
#if UNITY_ANDROID && !UNITY_EDITOR
            MirageAR_ServiceHelper.InitMirageARService();

            //Wait the MirageAR Service Connected Succeed
            if (!MirageAR_ServiceHelper.mMirageARServiceConnected)
            {
                //Wait until Android Service Init Complete
                yield return(new WaitUntil(() => MirageAR_ServiceHelper.mMirageARServiceConnected));
            }
#elif UNITY_IOS && !UNITY_EDITOR
            //TODO:The URLScheme callback will later than Unity Init Event,So Wait a While
            yield return(new WaitForSeconds(0.2f));
#endif

            if (mIs2DMode)
            {
                VisionSDK.Instance.Init(true, mMirageARLogger != null ? mMirageARLogger : null);

                // Add a controller
                mControllerPeripheral = new ControllerPeripheral("XCobra-0");
                VisionSDK.Instance.Connections.AddPeripheral(mControllerPeripheral);
            }
            else
            {
                VisionSDK.Instance.Init(false, mMirageARLogger != null ? mMirageARLogger : null);

                // Init Self Define Devices Setting
                Init_Setting();

                // Enable Mag Correction, it defaults off.
                VisionSDK.Instance.StereoCamera.UseMagnetometerCorrection = false;

                // If you want to use prediction for the HMD (Phone).
                VisionSDK.Instance.Tracking.Hmd.UsePositionPrediction = true;
                VisionSDK.Instance.Tracking.Hmd.UseRotationPrediction = true;

                //create controllerPeripheral
                mControllerPeripheral = new ControllerPeripheral("XCobra-0");
                mControllerPeripheral.UsePositionPrediction = true;

                VisionSDK.Instance.Connections.AddPeripheral(mControllerPeripheral);

                // Button Home Events Bind
                mInputListener = MirageAR_InputListener.Instance;
                if (mInputListener != null)
                {
                    mInputListener.HomePressDown += MInputListener_HomePressDown;
                    mInputListener.HomePressUp   += MInputListener_HomePressUp;
                }

                VisionSDK.Instance.Connections.OnPeripheralStateChange += OnPeripheralStateChange;
            }

            yield return(null);
        }
Пример #3
0
        /// <summary>
        /// OnPeripheralStateChange,Update State of Peripheral
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="eventArguments"></param>
        private void OnPeripheralStateChange(object sender, PeripheralStateChangeEventArgs eventArguments)
        {
            Sdk.Logger.Log("Is " + eventArguments.Peripheral.Name + " Connected? " + eventArguments.Connected);

            //Connected
            if (eventArguments.Connected)
            {
                // Peripheral Type
                if (eventArguments.Peripheral is HmdPeripheral)
                {
                    mHmdController = (HmdPeripheral)eventArguments.Peripheral;

                    //Output the Info of Hmd
                    OutputHmdInfo(mHmdController);
                }
                else
                {
                    if (eventArguments.Peripheral.GetModelName() == MirageAR_DeviceConstants.CONTROLLER_UNIVERSAL_MODELNAME)
                    {
                        controllerType       = MirageAR_DeviceConstants.ControllerType.UniversalController;
                        mUniversalController = (ControllerPeripheral)eventArguments.Peripheral;
                    }
                    else if (eventArguments.Peripheral.GetModelName() == MirageAR_DeviceConstants.CONTROLLER_SABER_MODELNAME)
                    {
                        controllerType   = MirageAR_DeviceConstants.ControllerType.SaberController;
                        mSaberController = (ControllerPeripheral)eventArguments.Peripheral;
                    }
                    else
                    {
                        Sdk.Logger.Log("Unknow Controller" + mUniversalController.GetDeviceName());
                    }

                    //Output the Info of Controller
                    OutputControllerInfo(eventArguments.Peripheral);
                }
            }
            else //DisConnected
            {
                if (eventArguments.Peripheral is HmdPeripheral)
                {
                    mHmdController = null;
                }
                else
                {
                    if (eventArguments.Peripheral.GetModelName() == MirageAR_DeviceConstants.CONTROLLER_UNIVERSAL_MODELNAME)
                    {
                        mUniversalController = null;
                    }
                    else if (eventArguments.Peripheral.GetModelName() == MirageAR_DeviceConstants.CONTROLLER_SABER_MODELNAME)
                    {
                        mSaberController = null;
                    }
                }
            }
        }
Пример #4
0
        private void OnSDKReady()
        {
            Log.Debug("SDK Ready");
            Analytics.LogAction(new ActionAnalytics("ready.sdk"));

            if (!fadeHandler)
            {
                fadeHandler = GetComponent <FadeHandler>();
            }
            if (!fadeHandler)
            {
                fadeHandler = gameObject.AddComponent <FadeHandler>();
            }

            MainNavigation.Setup(Sdk, false);
            fadeHandler.Setup(MainNavigation, Menu.GetComponent <Animator>());

            // Add the audio Listener
            Sdk.StereoCamera.gameObject.AddComponent <AkAudioListener>();

            // Setup Controllers
            if (!ControllerTransform)
            {
                ControllerTransform = (new GameObject("ControllerTransform")).transform;
            }
            ControllerPeripheral controller = new ControllerPeripheral(VisionSDK.ControllerName,
                                                                       ControllerTransform,
                                                                       null,
                                                                       container.GetSavedSaberColorID());

            controller.UsePositionPrediction = UsePrediction;
            Sdk.Connections.AddPeripheral(controller);

            ControllerTransform.gameObject.SetActive(false);

            Sdk.Tracking.OnBeaconStateChange += OnBeaconStateChanged;

            // Input Events
            Sdk.Connections.OnPeripheralStateChange += OnPeripheralStateChange;
            Sdk.Input.OnButtonDown  += OnButtonDown;
            Sdk.Input.OnButtonUp    += OnButtonUp;
            Sdk.Input.OnButtonPress += OnButtonPress;

            // Make Lenovo one-time call
            StartCoroutine(MakeLenovoOneTimeCall());

            // We are already looking at the beacon
            if (Application.isEditor || Sdk.Tracking.IsBeaconTracked)
            {
                beaconSeenOnce = true;

                Menu.Setup();
            }
        }
Пример #5
0
        private void OnSDKReady()
        {
            // Add the audio Listener
            Sdk.StereoCamera.gameObject.AddComponent <AkAudioListener>();

            // Setup Controllers
            ControllerPeripheral controller = new ControllerPeripheral(VisionSDK.ControllerName, null, null, container.GetSavedSaberColorID());

            controller.UsePositionPrediction = UsePrediction;
            Sdk.Connections.AddPeripheral(controller);

            // Input Events
            Sdk.Input.OnButtonUp += OnButtonUp;
        }
Пример #6
0
        protected void OnSdkReady()
        {
            // no further initialization needed if FTUE is complete
            if (FtueDataController.IsFtueComplete(FtueType.Intro))
            {
                return;
            }

            // adding controller
            saberPeripheral = new ControllerPeripheral(VisionSDK.ControllerName,
                                                       ControllerTransform,
                                                       null,
                                                       container.GetSavedSaberColorID());
            Sdk.Connections.AddPeripheral(saberPeripheral);

            // adding beacon
            Sdk.Tracking.OnBeaconStateChange += OnBeaconStateChange;

            // checking beacon signal
            if (Sdk.Tracking.IsBeaconTracked)
            {
                beaconSeen = true;

                // playing audio - signal acquired
                AudioEvent.Play(AudioEventName.Ftue.Computer.SignalAcquired, gameObject);
            }
            else
            {
                // playing audio - searching for signal
                AudioEvent.Play(AudioEventName.Ftue.Computer.AcquireSignal, gameObject);
            }

            // setting input handler
            Sdk.Input.OnButtonDown += OnButtonDown;

            // adding input listeners
            Sdk.Connections.OnPeripheralStateChange += OnPeripheralConnected;
            Sdk.Connections.OnPeripheralStateChange += OnPeripheralDisconnected;

            // adding animation listener
            HolocronAnimations.OnAnimationComplete += OnHolocronEnterAnimationComplete;

            // loading animation sequence config
            StreamingAssetsStorage loader = new StreamingAssetsStorage(Game.ForceVision, null);

            loader.LoadStreamingAssetsText(AnimationConfigFile, OnConfigLoaded, true);

            // playing sound
            AudioEvent.Play(AudioEventName.Ftue.MusicStart, gameObject);
        }
Пример #7
0
        protected void OnSdkReady()
        {
            // no further initialization needed if FTUE is complete
            if (FtueDataController.IsFtueComplete(FtueType.DarkSide))
            {
                return;
            }

            // adding controller
            saberPeripheral = new ControllerPeripheral(
                VisionSDK.ControllerName,
                ControllerTransform,
                null,
                container.GetSavedSaberColorID()
                );
            Sdk.Connections.AddPeripheral(saberPeripheral);

            // adding beacon
            Sdk.Tracking.OnBeaconStateChange += OnBeaconStateChange;

            // checking beacon signal
            if (Sdk.Tracking.IsBeaconTracked)
            {
                beaconSeen = true;
            }
            else
            {
            }

            // setting input handler
            Sdk.Input.OnButtonDown += OnButtonDown;

            // adding input listeners
            Sdk.Connections.OnPeripheralStateChange += OnPeripheralConnected;
            Sdk.Connections.OnPeripheralStateChange += OnPeripheralDisconnected;

            // loading animation sequence config
            StreamingAssetsStorage loader = new StreamingAssetsStorage(Game.ForceVision, null);

            loader.LoadStreamingAssetsText(AnimationConfigFile, OnConfigLoaded, true);

            // playing the menu FTUE animation
            Menu.GetComponent <Animator>().Play(MenuFtue);
        }
Пример #8
0
        /// <summary>
        /// Check the State of the Peripheral
        /// </summary>
        private void CheckPeripheralState()
        {
            //Check The Cotroller Peripheral State
            Peripheral controllerPeripheral = Sdk.Connections.GetPeripheral("XCobra-0");

            if (controllerPeripheral != null && controllerPeripheral.Connected)
            {
                if (controllerPeripheral.GetModelName() == MirageAR_DeviceConstants.CONTROLLER_UNIVERSAL_MODELNAME)
                {
                    controllerType       = MirageAR_DeviceConstants.ControllerType.UniversalController;
                    mUniversalController = (ControllerPeripheral)controllerPeripheral;
                }
                else if (controllerPeripheral.GetModelName() == MirageAR_DeviceConstants.CONTROLLER_SABER_MODELNAME)
                {
                    controllerType   = MirageAR_DeviceConstants.ControllerType.SaberController;
                    mSaberController = (ControllerPeripheral)controllerPeripheral;
                }
                else
                {
                    Sdk.Logger.Log("Unknow Controller" + controllerPeripheral.GetDeviceName());
                }

                //Output the Info of Controller
                OutputControllerInfo(controllerPeripheral);
            }

            //Check The Hmd Peripheral State
            HmdPeripheral hmdPeripheral = (HmdPeripheral)Sdk.Connections.GetPeripheral("XHawk-0");

            if (hmdPeripheral != null && hmdPeripheral.Connected)
            {
                mHmdController = hmdPeripheral;

                //Output the Info of Hmd
                OutputHmdInfo(mHmdController);
            }
        }
        /// <summary>
        /// Check the Input of Universal Controller
        /// </summary>
        private void CheckUniversalControllerInput(ControllerPeripheral mUniversalController)
        {
            // Check Is Connected
            if (!(mUniversalController.ControllerInput.connectionState == Ximmerse.InputSystem.DeviceConnectionState.Connected))
            {
                return;
            }

            #region App Button Events

            if (mUniversalController.ControllerInput.GetButtonDown((uint)ButtonType.App))
            {
                if (AppPressDown != null)
                {
                    AppPressDown();
                }
            }

            if (mUniversalController.ControllerInput.GetButton((uint)ButtonType.App))
            {
                if (AppPress != null)
                {
                    AppPress();
                }
            }

            if (mUniversalController.ControllerInput.GetButtonUp((uint)ButtonType.App))
            {
                if (AppPressUp != null)
                {
                    AppPressUp();
                }
            }

            #endregion  //App Button Events

            #region Home Button Events

            if (mUniversalController.ControllerInput.GetButtonDown((uint)ButtonType.Home))
            {
                if (HomePressDown != null)
                {
                    HomePressDown();
                }
            }

            if (mUniversalController.ControllerInput.GetButton((uint)ButtonType.Home))
            {
                if (HomePress != null)
                {
                    HomePress();
                }
            }

            if (mUniversalController.ControllerInput.GetButtonUp((uint)ButtonType.Home))
            {
                if (HomePressUp != null)
                {
                    HomePressUp();
                }
            }

            #endregion  //Home Button Events

            #region Trigger Button Events

            if (mUniversalController.ControllerInput.GetButtonDown((uint)ButtonType.Trigger))
            {
                if (TriggerPressDown != null)
                {
                    TriggerPressDown();
                }
            }

            //Trigger Not Support Axis Value
            if (mUniversalController.ControllerInput.GetButton((uint)ButtonType.Trigger))
            {
                if (TriggerPress != null)
                {
                    TriggerPress();
                }
            }

            if (mUniversalController.ControllerInput.GetButtonUp((uint)ButtonType.Trigger))
            {
                if (TriggerPressUp != null)
                {
                    TriggerPressUp();
                }
            }

            #endregion  //Trigger Button Events

            #region Touchpad Button Events

            if (mUniversalController.ControllerInput.GetButtonDown((uint)ButtonType.Touchpad))
            {
                if (TouchpadPressDown != null)
                {
                    TouchpadPressDown();
                }
            }

            if (mUniversalController.ControllerInput.GetButton((uint)ButtonType.Touchpad))
            {
                if (TouchpadPress != null)
                {
                    TouchpadPress();
                }
            }

            if (mUniversalController.ControllerInput.GetButtonUp((uint)ButtonType.Touchpad))
            {
                if (TouchpadPressUp != null)
                {
                    TouchpadPressUp();
                }
            }
            #endregion  //Touchpad Button Events

            #region Touchpad Gesture Event

            //Touchpad Touch
            if (mUniversalController.ControllerInput.GetButton((uint)TouchpadGestureType.TouchpadTouch))
            {
                Vector2 touchPosValue = mUniversalController.ControllerInput.touchPos;

                if (TouchpadTouch != null)
                {
                    TouchpadTouch(touchPosValue);
                }
            }

            //Touchpad Swip Gesture
            if (mUniversalController.ControllerInput.GetButtonUp((uint)TouchpadGestureType.SwipeUp))
            {
                if (TouchpadSwipeUp != null)
                {
                    TouchpadSwipeUp();
                }
            }

            if (mUniversalController.ControllerInput.GetButtonUp((uint)TouchpadGestureType.SwipeDown))
            {
                if (TouchpadSwipeDown != null)
                {
                    TouchpadSwipeDown();
                }
            }

            if (mUniversalController.ControllerInput.GetButtonUp((uint)TouchpadGestureType.SwipeRight))
            {
                if (TouchpadSwipeRight != null)
                {
                    TouchpadSwipeRight();
                }
            }

            if (mUniversalController.ControllerInput.GetButtonUp((uint)TouchpadGestureType.SwipeLeft))
            {
                if (TouchpadSwipeLeft != null)
                {
                    TouchpadSwipeLeft();
                }
            }

            //Touchpad Corner Click Gesture
            if (mUniversalController.ControllerInput.GetButtonDown((uint)TouchpadGestureType.DpadClick))
            {
                if (TouchpadDpadCenter != null)
                {
                    TouchpadDpadCenter();
                }
            }

            if (mUniversalController.ControllerInput.GetButtonDown((uint)TouchpadGestureType.DpadUp))
            {
                if (TouchpadDpadUp != null)
                {
                    TouchpadDpadUp();
                }
            }

            if (mUniversalController.ControllerInput.GetButtonDown((uint)TouchpadGestureType.DpadDown))
            {
                if (TouchpadDpadDown != null)
                {
                    TouchpadDpadDown();
                }
            }

            if (mUniversalController.ControllerInput.GetButtonDown((uint)TouchpadGestureType.DpadRight))
            {
                if (TouchpadDpadRight != null)
                {
                    TouchpadDpadRight();
                }
            }

            if (mUniversalController.ControllerInput.GetButtonDown((uint)TouchpadGestureType.DpadLeft))
            {
                if (TouchpadDpadLeft != null)
                {
                    TouchpadDpadLeft();
                }
            }

            #endregion  //Touchpad Gesture Event
        }
        /// <summary>
        /// Check the Input of Saber Controller
        /// </summary>
        private void CheckSaberControllerInput(ControllerPeripheral mSaberController)
        {
            // Check Is Connected
            if (!(mSaberController.ControllerInput.connectionState == Ximmerse.InputSystem.DeviceConnectionState.Connected))
            {
                return;
            }

            #region SaberActivate Button Events

            if (mSaberController.ControllerInput.GetButtonDown((uint)ButtonType.SaberActivate))
            {
                if (SaberActivatePressDown != null)
                {
                    SaberActivatePressDown();
                }
            }

            if (mSaberController.ControllerInput.GetButton((uint)ButtonType.SaberActivate))
            {
                if (SaberActivatePress != null)
                {
                    SaberActivatePress();
                }
            }

            if (mSaberController.ControllerInput.GetButtonUp((uint)ButtonType.SaberActivate))
            {
                if (SaberActivatePressUp != null)
                {
                    SaberActivatePressUp();
                }
            }

            #endregion  //SaberActivate Button Events

            #region SaberControl Button Events

            if (mSaberController.ControllerInput.GetButtonDown((uint)ButtonType.SaberControl))
            {
                if (SaberControlPressDown != null)
                {
                    SaberControlPressDown();
                }
            }

            if (mSaberController.ControllerInput.GetButton((uint)ButtonType.SaberControl))
            {
                if (SaberControlPress != null)
                {
                    SaberControlPress();
                }
            }

            if (mSaberController.ControllerInput.GetButtonUp((uint)ButtonType.SaberControl))
            {
                if (SaberControlPressUp != null)
                {
                    SaberControlPressUp();
                }
            }

            #endregion  //SaberControl Button Events
        }
        private void Setup()
        {
            DontDestroyOnLoad(InSceneContainerSounds);

            // adding listeners
            LanguageSelectionEvents.OnLanguageSelected        += OnLanguageSelected;
            LanguageSelectionEvents.OnLanguageSelectionClosed += OnLanguageSelectionClosed;

            // playing background music
            AudioEvent.Play(AudioEventName.Ftue.Stereo.BackgroundMusicStart, gameObject, 1.0f);

            //show language selection if not set already
            PlayerPrefsStorage prefsStorage = new PlayerPrefsStorage(Game.ForceVision);

            if (prefsStorage.PrefKeyExists(Localizer.LanguagePrefKey) == true)
            {
                LanguageSelection.SetActive(false);
                TitleScreen.SetActive(true);
            }
            else
            {
                LanguageSelection.SetActive(true);
                TitleScreen.SetActive(false);
            }

            // getting bluetooth, listening for bluetooth state changes
            Container.NativeSettings.GetBluetoothState("StereoSetupCanvas");

            // getting brightness level, listening brightness level changes
            Container.NativeSettings.SetBrightness(MaxBrightness);

            Controller = new ControllerPeripheral(VisionSDK.ControllerName);
            Sdk.Connections.AddPeripheral(Controller);

            Sdk.Connections.OnPeripheralStateChange += OnPeripheralStateChange;

            resizeAlignFTUE.Sdk = Sdk;
            resizeAlignRTUE.Sdk = Sdk;

            StereoSetupFtueController    ftue = MainCanvas.GetComponentInChildren <StereoSetupFtueController>(true);
            StereoSetupNonFtueController rtue = MainCanvas.GetComponentInChildren <StereoSetupNonFtueController>(true);

            ftue.Sdk = Sdk;
            rtue.Sdk = Sdk;

            // starting device check timer
            deviceCheckTime = Time.time + deviceCheckInterval;

            // adding listeners for title screen related events
            TitleScreenEvents.OnMenuSelected += OnMenuSelected;

                        #if !RC_BUILD
            // adding listener for touch down time reached
            TouchDownTimer.OnTouchDownTimeReached += OnTouchDownTimeReached;
                        #endif

            QualityController qualityController = new QualityController(Sdk);
            qualityController.ApplyQuality();

                        #if UNITY_EDITOR
            currentVolume = Mathf.Floor(UnityEngine.Random.Range(0, 1f) * 10) / 10f;
                        #else
            Log.Debug("Call LoadContent from Start");
            LoadContent();
            currentVolume = container.NativeSettings.GetVolume();
                        #endif

            // 3D sound setting
            for (int i = 0; i < SpatializationToggles.Length; i++)
            {
                SpatializationToggles[i].isOn = container.UseSpatialization();
            }

            // If the phone is not supported, profile selection is always on
            if (!JCSettingsManager.HasDeviceProfile)
            {
                ProfileSelectionToggle.isOn         = true;
                ProfileSelectionToggle.interactable = false;
            }
            else
            {
                // profile selection override setting
                ProfileSelectionToggle.isOn = ContainerAPI.UseProfileSelection();
            }
            SetPofilesSelectableInFTUEAndRTUE(ProfileSelectionToggle.isOn);

                        #if IS_DEMO_BUILD
            ContainerAPI.LoadDemoOptions();

            // make demo options visible and set UI state
            DemoOptions.SetActive(true);
            OptionsSpacer.SetActive(false);
            AllProgressionUnlockedToggle.isOn = ContainerAPI.AllProgressionUnlocked;
            GoProModeToggle.isOn = Disney.Vision.Internal.XimmerseTracker.UseGoProCameras;
                        #endif

            // this controller is common to both ftue and rtue so lets log the OTA version here (new ota data should already be downloaded)
            string otaVersion = DownloadController.GetManifestVersion()[0];

            Analytics.LogAction(new ActionAnalytics(SystemInfo.deviceModel,
                                                    "StereoSetupStart.ota" + otaVersion + (JCSettingsManager.HasDeviceProfile ? ".supported_device" : ".unsupported_device"),
                                                    -1,
                                                    ContainerAPI.UseProfileSelection().ToString()
                                                    ));
            SetLanguage();

            if (CreditsEndMessage != null)
            {
                CreditsEndMessage.SetActive(ContainerAPI.IsMedalUnlocked(MedalType.Mastery));
            }

            // Check what device the app is running on and adjust the UI accordingly
            var device = Sdk.Settings.CurrentDevice;

            if (device != null)
            {
                switch (device.Name)
                {
                case "iPhone X":
                    Scaler.matchWidthOrHeight = 1f;
                    break;
                }
            }
        }
Пример #12
0
        private IEnumerator SetSaberColor(ControllerPeripheral peripheral)
        {
            yield return(new WaitForSeconds(2.0f));

            peripheral.SetColor();
        }