コード例 #1
0
    void MovePlacementTemplateBuildingInput()
    {
        Vector2 lastTouched_WorldPos = Camera.main.ScreenToWorldPoint(MobileInput.GetInstance().GetLastTouchedPosition());
        Vector2 startTouch_WorldPos  = Camera.main.transform.position;//Camera.main.ScreenToWorldPoint(MobileInput.GetInstance().GetStartTouchPosition());

        m_TemplateBuildingPlacementOffset = lastTouched_WorldPos - startTouch_WorldPos;
    }
コード例 #2
0
    void MoveCameraInput()
    {
        float   moveSpeed  = 15.0f;
        Vector2 swipeDelta = MobileInput.GetInstance().GetSwipeDelta();

        swipeDelta.Normalize();
        swipeDelta              = -swipeDelta * moveSpeed * Time.deltaTime;
        m_TargetCameraPosition += (Vector3)swipeDelta;
    }
コード例 #3
0
    void ZoomCameraInput()
    {
        Vector2 curZeroPos     = MobileInput.GetInstance().GetLastTouchedPosition();
        Vector2 swipeDeltaZero = MobileInput.GetInstance().GetSwipeDelta();
        Vector2 prevZeroPos    = curZeroPos - swipeDeltaZero;

        Vector2 curOnePos     = MobileInput.GetInstance().GetLastTouchedPosition(1);
        Vector2 swipeDeltaOne = MobileInput.GetInstance().GetSwipeDelta(1);
        Vector2 prevOnePos    = curOnePos - swipeDeltaOne;

        float prevDist = (prevZeroPos - prevOnePos).sqrMagnitude;
        float curDist  = (curZeroPos - curOnePos).sqrMagnitude;
        float zoomDiff = curDist - prevDist;

        zoomDiff *= 0.00001f;

        Camera.main.orthographicSize = Mathf.Clamp(Camera.main.orthographicSize - zoomDiff, m_MinZoomOut, m_MaxZoomOut);
    }
コード例 #4
0
    /// <summary>
    /// Detects Player Input and decides what to do with it
    /// </summary>
    void DetectFingerInput()
    {
        // Check for Touch Input
        if (MobileInput.GetInstance().GetTouchCount() == 1 &&
            MobileInput.GetInstance().GetTouchPhase() != TouchPhase.Began)     // Only one Finger
        {
            // Decide on what to move
            if (!m_MovingSomething)
            {
                // Move Camera or Building?
                if (MapManager.GetInstance().GetPlacementBrushActive())
                {
                    if (!MobileInput.GetInstance().IsFingerTouching_GO(MapManager.GetInstance().GetTemplateBuilding().GetSpriteGO(), 0, LayerMask.NameToLayer("BuildingPlaceRef")))
                    {
                        m_MovingTemplateBuilding = false;
                    }
                    else
                    {
                        m_MovingTemplateBuilding = true;
                    }
                }
                else if (MapManager.GetInstance().GetMovementBrushActive())
                {
                }
                else
                {
                    m_MovingTemplateBuilding = false;
                }

                // Keep on moving that Object, DO NOT need to check again on next frame
                m_MovingSomething = true;
            }

            GameObject gameObj = MobileInput.GetInstance().IsFingerTouching_GO();
            if (gameObj != null)
            {
                InteractableObjBase interactableObj = gameObj.GetComponent <InteractableObjBase>();
                if (interactableObj != null)
                {
                    interactableObj.OnInteract();
                }
                else
                {
                    interactableObj = gameObj.GetComponent <InteractableObjBase>();
                    if (interactableObj)
                    {
                        interactableObj.OnInteract();
                    }
                }
            }

            // Move that Object
            if (!m_MovingTemplateBuilding)
            {
                MoveCameraInput();
            }
            else
            {
                MovePlacementTemplateBuildingInput();
            }
        }
        else if (MobileInput.GetInstance().GetTouchCount() > 1)  // More than one finger
        {
            ZoomCameraInput();
        }
        else    // No Fingers detected
        {
            m_MovingSomething = false;
        }
    }