コード例 #1
0
ファイル: InputAdapter.cs プロジェクト: SatishGodaPearl/VPET
        //!
        //! single touch ended (called by Mouse or Touch Input)
        //! @param      pos     screen position of pointer
        //!
        public void singlePointerEnded(Vector3 pos)
        {
            pointerDown = false;

            if (mainController.helpActive)
            {
                helpMenu.startSnap();
                return;
            }

            if (mainController.ActiveMode == MainController.Mode.lightSettingsMode && editingLight)
            {
                if (!mainController.liveMode)
                {
                    mainController.sendUpdateToServer();
                }
                editingLight = false;
                return;
            }

            if (!pause)
            {             //pause is active when avaoiding double interactions
                if (!pointerOnGUI())
                {
                    //pointToMove active
                    if (mainController.ActiveMode == MainController.Mode.pointToMoveMode)
                    {
                        mainController.hidePointToMoveIdentifier(planeRaycast(pos, targetPlane));
                        return;
                    }

                    if (!(mainController.ActiveMode == MainController.Mode.translationMode ||
                          mainController.ActiveMode == MainController.Mode.rotationMode ||
                          mainController.ActiveMode == MainController.Mode.scaleMode ||
                          mainController.ActiveMode == MainController.Mode.animationEditing))
                    {
                        //selection mode is active
                        GameObject hitObject = cameraRaycast(pos, defaultLayermask);
                        if (hitObject)
                        {
                            //Object was hit
                            mainController.handleSelection(hitObject.transform);
                            hitObject = null;
                        }
                        else
                        {
                            mainController.handleSelection();
                        }
                    }
                    else
                    {
                        //editing mode is active
                        if (pointerOnModifier)
                        {
                            pointerOnModifier = false;
                            mainController.resetModifiers();
                            hitPositionBuffer = nullVector;

                            if (mainController.UIAdapter.LayoutUI == layouts.ANIMATION)
                            // if (mainController.AnimationController.IsActive)
                            {
                                mainController.AnimationController.setKeyFrame();
                            }
                        }
                    }
                }
            }
            else
            {
                pause = false;
            }

            //reset variables
            pointerOnModifier = false;
        }
コード例 #2
0
        //!
        //! single touch ended (called by Mouse or Touch Input)
        //! @param      pos     screen position of pointer
        //!
        public void singlePointerEnded(Vector3 pos)
        {
            pointerDown = false;

            if (mainController.ActiveMode == MainController.Mode.lightSettingsMode && editingLight)
            {
                if (!mainController.liveMode)
                {
                    mainController.sendUpdateToServer();
                }
                undoRedoController.addAction();
                editingLight = false;
                return;
            }

            if (!pause)
            {             //pause is active when avaoiding double interactions
                if (!pointerOnGUI())
                {
                    //oneForAll mode
                    if (mainController.ActiveMode == MainController.Mode.oneForAllMode)
                    {
                        undoRedoController.addAction();
                        hitPositionBuffer = nullVector;
                        return;
                    }

                    //pointToMove active
                    if (mainController.ActiveMode == MainController.Mode.pointToMoveMode ||
                        mainController.ActiveMode == MainController.Mode.pointShootTranslation)
                    {
                        mainController.hidePointToMoveIdentifier(objectRaycast(pos, groundPlane));
                        return;
                    }

                    if (!(mainController.ActiveMode == MainController.Mode.translationMode ||
                          mainController.ActiveMode == MainController.Mode.rotationMode ||
                          mainController.ActiveMode == MainController.Mode.scaleMode ||
                          mainController.ActiveMode == MainController.Mode.animationEditing))
                    {
                        //selection mode is active
                        GameObject hitObject = cameraRaycast(pos, defaultLayermask);
                        if (hitObject)
                        {
                            //Object was hit
                            mainController.handleSelection(hitObject.transform);
                            hitObject = null;
                        }
                    }
                    else
                    {
                        //editing mode is active
                        if (pointerOnModifier)
                        {
                            pointerOnModifier = false;
                            mainController.resetModifiers();
                            hitPositionBuffer = nullVector;

                            if (mainController.AnimationController.isActive)
                            {
                                mainController.AnimationController.setKeyFrame();
                            }
                        }
                    }
                }
            }
            else
            {
                pause = false;
            }

            //reset variables
            lastTime          = float.NaN;
            pointerOnModifier = false;
        }