Exemple #1
0
    private bool HitTest()
    {
        if (buildingCollider == null)
        {
            return(false);
        }

        RaycastHit hit;
        OnlineMapsControlBaseDynamicMesh control = container.control;

        return(buildingCollider.Raycast(control.activeCamera.ScreenPointToRay(control.GetInputPosition()), out hit, OnlineMapsUtils.maxRaycastDistance));
    }
Exemple #2
0
    private void Update()
    {
#if USE_MOUSE_ROTATION
        if (Input.GetMouseButton(1))
        {
            Vector2 inputPosition = control.GetInputPosition();
#else
        if (Input.touchCount == 2)
        {
            Vector2 p1 = Input.GetTouch(0).position;
            Vector2 p2 = Input.GetTouch(1).position;

            Vector2 inputPosition = Vector2.Lerp(p1, p2, 0.5f);
#endif
            if (!control.IsCursorOnUIElement(inputPosition))
            {
                isCameraControl = true;
                if (lastInputPosition == Vector2.zero)
                {
                    lastInputPosition = inputPosition;
                }
                if (lastInputPosition != inputPosition && lastInputPosition != Vector2.zero)
                {
                    Vector2 offset  = lastInputPosition - inputPosition;
                    bool    changed = offset.sqrMagnitude > 0 && (!lockPan || !lockTilt);
                    if (!lockTilt)
                    {
                        rotation.x -= offset.y / 10f * speed.x;
                    }
                    if (!lockPan)
                    {
                        rotation.y -= offset.x / 10f * speed.y;
                    }

                    if (changed && OnChangedByInput != null)
                    {
                        OnChangedByInput();
                    }
                }
                lastInputPosition = inputPosition;
            }
        }
        else if (isCameraControl)
        {
            lastInputPosition = Vector2.zero;
            isCameraControl   = false;
        }
    }