コード例 #1
0
    protected override void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
    {
        switch (obj.name)
        {
        case "Cube":
        {
            // Find the local player object...
            var scripts = GameObject.FindObjectsOfType <HoloLensPlayerScript>();
            if (scripts == null)
            {
                Debug.Log("Scripts is null");
            }
            HoloLensPlayerScript localPlayer = new List <HoloLensPlayerScript>(scripts).Find(player => player.isLocalPlayer);
            //if (localPlayer != null)
            //{
            var sharedCollection = GameObject.Find("SharedCollection");
            if (sharedCollection && localPlayer)
            {
#if WINDOWS_UWP
                //WorldAnchorMgr.Instance.ImportWorldAnchorFromDisk();
                //break;
#endif
                var was = localPlayer.GetComponent <WorldAnchorScript>();
                var wa  = sharedCollection.GetComponent <WorldAnchor>();
                if (wa == null)
                {
                    wa = sharedCollection.AddComponent <WorldAnchor>();
                }
                Logger.Log("About to upload world anchor");
                was.UploadWorldAnchor(wa);
            }
            break;
        }
        }
    }
コード例 #2
0
    protected override void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
    {
        BoundingBoxManipulateWithLock boundingBoxManipulateWithLock = (BoundingBoxManipulateWithLock)manipulationManager.ActiveBoundingBox;

        boundingBoxManipulateWithLock.LockBoundingBox();
        base.OnTapped(obj, eventArgs);
    }
コード例 #3
0
 private void OnHoldCanceled(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
 {
     if (obj == targetObject)
     {
         _held = false;
     }
 }
コード例 #4
0
        protected override void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
        {
            Debug.Log(obj.name);
            switch (obj.name)
            {
            case "SurfaceTypeButtonDefault":
                TargetCollection.GetComponent <ObjectCollectionDynamic>().RestoreArrangement();
                TargetCollection.Radius = HomeRadius;
                TargetCollection.transform.localPosition = HomeOffset;
                break;

            case "SurfaceTypeButtonPlane":
                TargetCollection.SurfaceType             = ObjectCollection.SurfaceTypeEnum.Plane;
                TargetCollection.transform.localPosition = PlaneOffset;
                TargetCollection.Radius = PlaneRadius;
                TargetCollection.UpdateCollection();
                break;

            case "SurfaceTypeButtonSphere":
                TargetCollection.SurfaceType             = ObjectCollection.SurfaceTypeEnum.Sphere;
                TargetCollection.transform.localPosition = SphereOffset;
                TargetCollection.Radius = SphereRadius;
                TargetCollection.UpdateCollection();
                break;

            case "SurfaceTypeButtonCylinder":
                TargetCollection.SurfaceType             = ObjectCollection.SurfaceTypeEnum.Cylinder;
                TargetCollection.transform.localPosition = CylinderOffset;
                TargetCollection.Radius = CylinderRadius;
                TargetCollection.UpdateCollection();
                break;
            }
            base.OnTapped(obj, eventArgs);
        }
コード例 #5
0
 /// <summary>
 /// On Hold start event for attaching objects if it's the correct option
 /// </summary>
 /// <param name="obj"></param>
 /// <param name="eventArgs"></param>
 protected override void OnHoldStarted(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
 {
     if (m_InteractionType == AttachInteractionEnum.PressAndHold && m_InteractingFocus == null)
     {
         AttachObjects(eventArgs.Focuser);
     }
 }
コード例 #6
0
 protected override void OnHoldStarted(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
 {
     if (InteractionType == InteractionTypeEnum.OnSelect)
     {
         eventArgs.Focuser.SetCursor(NewCursorPrefab);
     }
 }
コード例 #7
0
ファイル: DialogAndMenuExample.cs プロジェクト: usheveta/Blog
        protected override void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
        {
            base.OnTapped(obj, eventArgs);
            if (launchedDialog)
            {
                return;
            }

            SimpleDialog.ButtonTypeEnum buttons = SimpleDialog.ButtonTypeEnum.Close;
            string title   = string.Empty;
            string message = string.Empty;

            switch (obj.name)
            {
            default:
                title   = Dialog1Title;
                message = Dialog1Message;
                buttons = Dialog1Button;
                break;

            case "SquareButtonDiag2":
                title   = Dialog2Title;
                message = Dialog2Message;
                buttons = Dialog2Button1 | Dialog2Button2;
                break;
            }

            launchedDialog = true;
            StartCoroutine(LaunchDialogOverTime(buttons, title, message));
        }
コード例 #8
0
    protected override void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
    {
        //txt.text = obj.name + " : OnTapped";

        switch (obj.name)
        {
        case "HostButton":
        {
            // Not sure this is the best way to do this.. seems wrong..
            var trgt = Targets[0].GetComponent <HoloLensLobbyManager>();
            var nc   = trgt.StartHost();
            Debug.Log("server ip = " + nc.serverIp);
            Debug.Log("server port = " + nc.serverPort);
            break;
        }

        case "ClientButton":
        {
            var trgt = Targets[0].GetComponent <HoloLensLobbyManager>();
            trgt.networkAddress = "192.168.0.18";        // "192.168.0.10"; //ipInput.text;
            trgt.networkPort    = 7777;

            var nc = trgt.StartClient();
            trgt.IsClientConnected();
            break;
        }
        }
        base.OnTapped(obj, eventArgs);
    }
コード例 #9
0
 protected override void OnNavigationUpdated(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
 {
     if (m_Focuser == eventArgs.Focuser)
     {
         m_curHandPos = eventArgs.Position;
     }
 }
コード例 #10
0
 protected override void OnHoldCompleted(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
 {
     if (InteractionType == InteractionTypeEnum.OnSelect && RevertOnExit && m_baseCursor != null)
     {
         eventArgs.Focuser.SetCursor(m_baseCursor);
     }
 }
コード例 #11
0
 /// <summary>
 /// On hold cancel detach objects
 /// </summary>
 /// <param name="obj"></param>
 /// <param name="eventArgs"></param>
 protected override void OnHoldCanceled(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
 {
     if (m_InteractionType == AttachInteractionEnum.PressAndHold && m_bAttached && m_InteractingFocus == eventArgs.Focuser)
     {
         DetachObjects();
     }
 }
コード例 #12
0
 private void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
 {
     if (obj == targetObject)
     {
         _tapped = true;
     }
 }
コード例 #13
0
 private void OnHoldStarted(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
 {
     if (obj == targetObject)
     {
         _held = true;
     }
 }
コード例 #14
0
        protected override void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
        {
            Animation targetAnim = TargetObject.GetComponent <Animation>();

            if (AnimCondition == StartType.OnSelect)
            {
                if (bPlaying)
                {
                    targetAnim.Stop(AnimName);
                    bPlaying = false;
                }
                else
                {
                    var time = BlendTime;
                    if (time < 0.001f)
                    {
                        targetAnim.Play(AnimName, AnimPlayMode);
                    }
                    else
                    {
                        targetAnim.CrossFade(AnimName, time, AnimPlayMode);
                    }

                    bPlaying = true;
                }
            }
        }
コード例 #15
0
 /// <summary>
 /// InteractionManager SendMessage("HoldUpdated") receiver.
 /// </summary>
 /// <param name="args"></param>
 public virtual void HoldUpdated(InteractionManager.InteractionEventArgs args)
 {
     if (!m_disabled && ButtonState == ButtonStateEnum.Pressed)
     {
         DoButtonHeld();
     }
 }
コード例 #16
0
        protected override void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
        {
            Debug.Log("Tapped on " + obj.name);
            switch (obj.name)
            {
            case "PlayButton":
                menu.StartGame();
                break;

            case "QuizButton":
                SceneManager.LoadScene("quizScene1");
                break;

            case "ReturnToMenu":
                Debug.Log("return to menu tapped");
                SceneManager.LoadScene("menuScene");
                break;

            case "ExitButton":
                Application.Quit();
                break;

            case "Cube":
                if (game.CurrentState == Game.State.SearchingCube)
                {
                    game.ChangeStateTo(Game.State.EndRound);
                }
                break;

            default:
                break;
            }
            base.OnTapped(obj, eventArgs);
        }
コード例 #17
0
        protected override void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
        {
            base.OnTapped(obj, eventArgs);

            if (obj == null)
            {
                return;
            }

            switch (obj.name)
            {
            case "NextPage":
                NextPage();
                break;

            case "StartOver":
                reachedEnd = true;
                restart    = true;
                break;

            case "Close":
                reachedEnd = true;
                restart    = false;
                break;
            }
        }
コード例 #18
0
 protected override void OnHoldStarted(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
 {
     bSelecting = true;
     if (bGazing || !RequireGaze)
     {
         StartCoroutine("SelectHoldCheck");
     }
 }
コード例 #19
0
    protected override void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
    {
        Debug.Log("lollllll");

        Destroy(this.gameObject);
        Destroy(obj);
        Destroy(obj.gameObject);
    }
コード例 #20
0
        protected override void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
        {
            base.OnTapped(obj, eventArgs);

            if (obj == null)
            {
                return;
            }

            switch (obj.name)
            {
            case "TutorialYes":
                ShowTutorial();
                break;

            case "TutorialNo":
                // TEMP - show control menu
                selectTutorialMenu.SetActive(false);
                selectControlsMenu.SetActive(true);

                // TEMP - disable normal flow
                //Deactivate();
                break;

            case "Close":
                // NOTE - this tapped event will come from a button in a tutorial displays
                // the 'ControlScreen' object has been added to their 'Targets' arrays
                Deactivate();
                break;

            case "GamepadInput":
                Debug.Log("Selected gamepad!");
                LanderInput.Instance.InputType = LanderInput.InputTypeEnum.Gamepad;
                selectControlsMenu.SetActive(false);
                // TEMP - show a single-screen gamepad tutorial with a 'close' button
                tutorialDisplayParent.SetActive(true);
                tutorialObjectGamepad.SetActive(true);

                // TEMP - disable normal flow
                //selectTutorialMenu.SetActive(true);
                break;

            case "HololensInput":
                LanderInput.Instance.InputType = LanderInput.InputTypeEnum.Hololens;
                selectControlsMenu.SetActive(false);
                // TEMP - deactivate screen
                Deactivate();

                // TEMP - disable normal flow
                //selectTutorialMenu.SetActive(true);
                break;

            default:
                Debug.LogError("Unknown button choice in " + name + ": " + obj.name);
                break;
            }
        }
コード例 #21
0
 protected override void OnNavigationCanceled(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
 {
     if (eventArgs.Focuser == m_Focuser)
     {
         StopCoroutine("RotateObject");
         m_Focuser.ReleaseFocus();
         m_Focuser = null;
     }
 }
コード例 #22
0
        // Start returning offset data on select
        protected override void OnHoldStarted(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
        {
            handStartPos = Veil.Instance.HandPosition;
            if (Togglable)
            {
                Held = true;
            }

            Selected = true;
        }
コード例 #23
0
 protected override void OnNavigationStarted(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
 {
     if (m_Focuser != null)
     {
         m_Focuser    = eventArgs.Focuser;
         m_handOrigin = eventArgs.Position;
         m_Focuser.LockFocus();
         StartCoroutine("RotateObject");
     }
 }
コード例 #24
0
        /// <summary>
        /// InteractionManager SendMessage("HoldStarted") receiver.
        /// </summary>
        /// <param name="args"></param>
        public virtual void HoldStarted(InteractionManager.InteractionEventArgs args)
        {
            if (!m_disabled)
            {
                DoButtonPressed();

                // Set state to Pressed
                ButtonStateEnum newState = ButtonStateEnum.Pressed;
                this.OnStateChange(newState);
            }
        }
コード例 #25
0
        /// <summary>
        /// On select started toggle the color of the object.
        /// </summary>
        protected override void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
        {
            _bToggled = !_bToggled;
            Renderer targetRenderer;

            for (int i = 0; i < Targets.Count; i++)
            {
                targetRenderer = Targets[i].GetComponent <Renderer>();
                targetRenderer.material.color = _bToggled ? TargetColor : DefaultColor;
            }
        }
コード例 #26
0
        public virtual void Released(InteractionManager.InteractionEventArgs args)
        {
            if (enabled)
            {
                DoButtonReleased();

                // Unset state from pressed.
                ButtonStateEnum newState = ButtonStateEnum.Targeted;
                this.OnStateChange(newState);
            }
        }
コード例 #27
0
        public void OnNavigationCancel(GameObject obj, InteractionManager.InteractionEventArgs args)
        {
            if (BaseCursor != null && ScrollCursor != null)
            {
                ScrollCursor.SetActive(false);
                BaseCursor.SetActive(true);

                this.SetAnimState(BaseCursor.GetComponent <Animation>());
                _scrollActive = false;
            }
        }
コード例 #28
0
        /// <summary>
        /// InteractionManager SendMessage("HoldCanceled") receiver.
        /// </summary>
        /// <param name="args"></param>
        public virtual void HoldCanceled(InteractionManager.InteractionEventArgs args)
        {
            if (!m_disabled && ButtonState == ButtonStateEnum.Pressed)
            {
                DoButtonCancelled();
                // Unset state from pressed.

                ButtonStateEnum newState = ButtonStateEnum.Targeted;
                this.OnStateChange(newState);
            }
        }
コード例 #29
0
 // When selected toggle color change
 protected override void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs e)
 {
     Debug.Log("On tapped in interaction receiver");
     if (Targets.Count > 0)
     {
         foreach (GameObject target in Targets)
         {
             target.SetActive(!target.activeSelf);
         }
     }
 }
コード例 #30
0
        protected override void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)
        {
            switch (obj.name)
            {
            // Manual Alignement
            case "MaButton":
                RDDscript_.enabled = false;
                Map_.layer         = LayerMask.NameToLayer("Default");
                MiniMap_.layer     = LayerMask.NameToLayer("UI");
                SpatialMapping_.SetActive(false);
                break;

            // Difference Reasoning
            case "DrButton":
                RDDscript_.enabled = true;
                Map_.layer         = LayerMask.NameToLayer("ReferenceLayer");
                MiniMap_.layer     = LayerMask.NameToLayer("Hidden");
                SpatialMapping_.SetActive(true);
                break;

            // Lock Button
            case "LockButton":
                TAscript_.enabled = false;
                Bscript_.enabled  = false;
                LockButton_.SetActive(false);
                UnlockButton_.SetActive(true);
                break;

            // Unlock Button
            case "UnlockButton":
                TAscript_.enabled = true;
                Bscript_.enabled  = true;
                UnlockButton_.SetActive(false);
                LockButton_.SetActive(true);
                break;

            case "LoadButton":

                break;

                /*
                 * case "RmButton":
                 *  // Remove Button Hides menu
                 *  foreach (Transfor
                 *  m trans in ToolBar_.GetComponentsInChildren<Transform>(true))
                 *  {
                 *      trans.gameObject.layer = LayerMask.NameToLayer("Hidden");
                 *  }
                 *  break;
                 */
            }
            base.OnTapped(obj, eventArgs);
        }