Пример #1
0
    private void CheckGizmosRaycast(Vector3 mousePosition)
    {
        RaycastHit hit;

        if (Raycast(mousePosition, gizmoMask, out hit, CompareSelectionHit))
        {
            BIWGizmosAxis gizmosAxis = hit.collider.gameObject.GetComponent <BIWGizmosAxis>();
            if (gizmosAxis != null)
            {
                OnGizmosAxisPressed?.Invoke(gizmosAxis);
            }
        }
    }
Пример #2
0
        private void OnMouseDown(int buttonId, Vector3 mousePosition)
        {
            if (buttonId != 0)
            {
                return;
            }

            bool gizmoOrEntityPressed = false;

            RaycastHit hit;

            if (builderRaycast.Raycast(mousePosition, builderRaycast.defaultMask | builderRaycast.gizmoMask, out hit, CompareSelectionHit))
            {
                DCLBuilderGizmoAxis gizmosAxis = hit.collider.gameObject.GetComponent <DCLBuilderGizmoAxis>();
                if (gizmosAxis != null)
                {
                    OnGizmosAxisPressed?.Invoke(gizmosAxis);
                    gizmoOrEntityPressed = true;
                }
                else
                {
                    var builderSelectionCollider   = hit.collider.gameObject.GetComponent <DCLBuilderSelectionCollider>();
                    DCLBuilderEntity pressedEntity = null;

                    if (builderSelectionCollider != null)
                    {
                        pressedEntity = builderSelectionCollider.ownerEntity;
                    }

                    if (pressedEntity != null && CanSelect(pressedEntity))
                    {
                        SetLastPressedEntity(pressedEntity, hit.point);
                        OnEntityPressed?.Invoke(pressedEntity, hit.point);
                        gizmoOrEntityPressed = true;
                    }
                }
            }

            if (gizmoOrEntityPressed)
            {
                groundClickTime = 0;
            }
            else
            {
                groundClickTime = Time.unscaledTime;
            }
        }