Ejemplo n.º 1
0
        protected virtual IEnumerable <GameObject> BoxcastUIObjects()
        {
            m_uiBoxcastResults.Clear();

            Bounds bounds = m_boxSelection.SelectionBounds;

            Vector3[] corners = new Vector3[4];
            foreach (BaseRaycaster raycaster in FindRaycasters())
            {
                CanvasRenderer[] renderers = raycaster.GetComponentsInChildren <CanvasRenderer>();

                for (int i = 0; i < renderers.Length; ++i)
                {
                    CanvasRenderer renderer      = renderers[i];
                    RectTransform  rectTransform = (RectTransform)renderer.transform;
                    rectTransform.GetWorldCorners(corners);
                    for (int j = 0; j < 4; ++j)
                    {
                        Vector3 corner = Window.Camera.WorldToScreenPoint(corners[j]);
                        corner.z = 0;

                        if (bounds.Contains(corner))
                        {
                            if (CanSelectObject(renderer.gameObject))
                            {
                                ExposeToEditor exposeToEditor = renderer.GetComponentInParent <ExposeToEditor>();
                                if (exposeToEditor != null)
                                {
                                    m_uiBoxcastResults.Add(exposeToEditor.gameObject);
                                }
                            }
                            break;
                        }
                    }
                }
            }
            return(m_uiBoxcastResults);
        }
Ejemplo n.º 2
0
 void CheckInputDialogue()
 {
     if (Input.GetKeyDown(botonInteraccion) && shopping)
     {
         tienda_.GetComponentInParent <Transform>().SetAsLastSibling();
         tienda_.gameObject.SetActive(true);
         shopping = false;
         if (primerBoton.interactable)
         {
             primerBoton.Select();
         }
         else
         {
             primerBoton.FindSelectableOnDown().Select();
         }
         MessageManager.instance.CloseMessage();
         GameManager.instance.ventanaAbierta = true;
     }
     else if (Input.GetKeyDown(botonInteraccion) && tienda_.gameObject.activeInHierarchy)
     {
         Exit();
         shopping = true;
     }
 }
        private void PanGestureUpdated(DigitalRubyShared.GestureRecognizer panGesture)
        {
            if (!AllowPan)
            {
                panGesture.Reset();
                return;
            }

            Camera     camera;
            GameObject obj = FingersScript.StartOrResetGesture(panGesture, BringToFront, Cameras, gameObject, spriteRenderer, Mode, out camera);

            if (camera == null)
            {
                panGesture.Reset();
                return;
            }

            StateUpdated.Invoke(PanGesture);
            if (panGesture.State == GestureRecognizerState.Began)
            {
                SetStartState(panGesture, obj, false);
            }
            else if (panGesture.State == GestureRecognizerState.Executing && _transform != null)
            {
                if (PanGesture.ReceivedAdditionalTouches)
                {
                    panZ = camera.WorldToScreenPoint(_transform.position).z;
                    if (canvasRenderer == null)
                    {
                        panOffset = _transform.position - camera.ScreenToWorldPoint(new Vector3(panGesture.FocusX, panGesture.FocusY, panZ));
                    }
                    else
                    {
                        Vector2 screenToCanvasPoint = canvasRenderer.GetComponentInParent <Canvas>().ScreenToCanvasPoint(new Vector2(panGesture.FocusX, panGesture.FocusY));
                        panOffset = new Vector3(screenToCanvasPoint.x - _transform.position.x, screenToCanvasPoint.y - _transform.position.y, 0.0f);
                    }
                }
                Vector3 gestureScreenPoint = new Vector3(panGesture.FocusX, panGesture.FocusY, panZ);
                Vector3 gestureWorldPoint  = camera.ScreenToWorldPoint(gestureScreenPoint) + panOffset;
                if (rigidBody != null)
                {
                    rigidBody.MovePosition(gestureWorldPoint);
                }
                else if (rigidBody2D != null)
                {
                    rigidBody2D.MovePosition(gestureWorldPoint);
                }
                else if (canvasRenderer != null)
                {
                    _transform.position = gestureScreenPoint - panOffset;
                }
                else
                {
                    _transform.position = gestureWorldPoint;
                }
            }
            else if (panGesture.State == GestureRecognizerState.Ended)
            {
                if (spriteRenderer != null && BringToFront)
                {
                    spriteRenderer.sortingOrder = startSortOrder;
                }
                ClearStartState();
            }
        }