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); } } }
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; } }