public void CheckOutline() { if (outlinerOptimizationCounter >= 10 && isOutlineCheckActive) { if (!BIWUtils.IsPointerOverUIElement() && !BIWUtils.IsPointerOverMaskElement(BIWSettings.GIZMOS_LAYER)) { BIWEntity entity = raycastController.GetEntityOnPointer(); RemoveEntitiesOutlineOutsidePointerOrUnselected(); if (entity != null && !entity.IsSelected) { OutlineEntity(entity); } } else { CancelUnselectedOutlines(); } outlinerOptimizationCounter = 0; } else { outlinerOptimizationCounter++; } }
void OnInputMouseDown(int buttonID, Vector3 position) { lastMousePosition = position; if (buttonID == 1) { mouseSecondaryBtnPressed = true; freeCameraController.StartDectectingMovement(); } if (buttonID != 0) { return; } dragStartedPoint = raycastController.GetFloorPointAtMouse(position); if (isSnapActive) { dragStartedPoint.x = Mathf.Round(dragStartedPoint.x); dragStartedPoint.z = Mathf.Round(dragStartedPoint.z); } if (isPlacingNewObject) { return; } var entity = raycastController.GetEntityOnPointer(); if ((entity == null || (entity != null && !entity.IsSelected)) && !BIWUtils.IsPointerOverMaskElement(BIWSettings.GIZMOS_LAYER)) { isSquareMultiSelectionInputActive = true; outlinerController.SetOutlineCheckActive(false); } mouseMainBtnPressed = true; freeCameraController.SetCameraCanMove(false); }
private void OnInputMouseDrag(int buttonId, Vector3 mousePosition, float axisX, float axisY) { if (Vector3.Distance(lastMousePosition, mousePosition) <= BIWSettings.MOUSE_THRESHOLD_FOR_DRAG && !isMouseDragging) { return; } isMouseDragging = true; if (buttonId != 0 || selectedEntities.Count <= 0 || BIWUtils.IsPointerOverMaskElement(BIWSettings.GIZMOS_LAYER) || isSquareMultiSelectionInputActive) { return; } if (!isDraggingStarted) { StarDraggingSelectedEntities(); } if (canDragSelectedEntities) { Vector3 currentPoint = raycastController.GetFloorPointAtMouse(mousePosition); Vector3 initialEntityPosition = editionGO.transform.position; if (isSnapActive) { currentPoint = GetPositionRoundedToSnapFactor(currentPoint); initialEntityPosition = GetPositionRoundedToSnapFactor(initialEntityPosition); } Vector3 move = currentPoint - dragStartedPoint; Vector3 destination = initialEntityPosition + move; editionGO.transform.position = destination; dragStartedPoint = currentPoint; } }