private void InputControllerOnFingerDown(Vector3 fingerDownPos) { CurrentlyDraggedPickable = null; bool isDragStartedOnSelection = false; //try{ isDragStartedOnSelection = SelectedCollider != null && GetClosestColliderAtScreenPoint(fingerDownPos) == SelectedCollider && SelectedCollider.GetComponent<MobileTouchPickable>().checkMove; // } catch { } try { isDragStartedOnSelection = SelectedCollider != null && GetClosestColliderAtScreenPoint(fingerDownPos) == SelectedCollider; } catch { } if (isDragStartedOnSelection == true) { MobileTouchPickable mobileTouchPickable = SelectedCollider.GetComponent <MobileTouchPickable>(); if (mobileTouchPickable != null) { mobileTouchCam.OnDragSceneObject(); //Lock camera movement. CurrentlyDraggedPickable = mobileTouchPickable; currentlyDraggedTransformPosition = CurrentlyDraggedTransform.position; DraggedTransformOffset = Vector3.zero; if (mobileTouchCam.Cam.orthographic == true && snapToGrid == false) { DraggedTransformOffset = CurrentlyDraggedTransform.position - ComputeDragPositionWorld(fingerDownPos); } } } }
private void RequestDragPickable(Component colliderComponent, Vector2 fingerDownPos, Vector3 intersectionPoint) { if (requireLongTapForMove == true && isSelectedViaLongTap == false) { return; } CurrentlyDraggedPickable = null; bool isDragStartedOnSelection = colliderComponent != null && SelectedColliders.Contains(colliderComponent); if (isDragStartedOnSelection == true) { MobileTouchPickable mobileTouchPickable = colliderComponent.GetComponent <MobileTouchPickable>(); if (mobileTouchPickable != null) { mobileTouchCam.OnDragSceneObject(); //Lock camera movement. CurrentlyDraggedPickable = mobileTouchPickable; currentlyDraggedTransformPosition = CurrentlyDraggedTransform.position; invokeMoveStartedOnDrag = true; currentDragStartPos = CurrentlyDraggedTransform.position; selectionPositionOffsets.Clear(); foreach (Component selectionComponent in SelectedColliders) { selectionPositionOffsets.Add(selectionComponent, currentDragStartPos - selectionComponent.transform.position); } draggedTransformOffset = Vector3.zero; draggedTransformHeightOffset = Vector3.zero; draggedItemCustomOffset = Vector3.zero; //Find offset of item transform relative to ground. Vector3 groundPosCenter = Vector3.zero; Ray groundScanRayCenter = new Ray(CurrentlyDraggedTransform.position, -mobileTouchCam.RefPlane.normal); bool rayHitSuccess = mobileTouchCam.RaycastGround(groundScanRayCenter, out groundPosCenter); if (rayHitSuccess == true) { draggedTransformHeightOffset = CurrentlyDraggedTransform.position - groundPosCenter; } else { groundPosCenter = CurrentlyDraggedTransform.position; } draggedTransformOffset = groundPosCenter - intersectionPoint; itemInitialDragOffsetWorld = (ComputeDragPosition(fingerDownPos, SnapToGrid) - CurrentlyDraggedTransform.position); } } }
private void RequestDragPickable(Component colliderComponent, Vector2 fingerDownPos, Vector3?intersectionPoint) { CurrentlyDraggedPickable = null; bool isDragStartedOnSelection = SelectedCollider != null && colliderComponent == SelectedCollider; if (isDragStartedOnSelection == true) { MobileTouchPickable mobileTouchPickable = SelectedCollider.GetComponent <MobileTouchPickable>(); if (mobileTouchPickable != null) { mobileTouchCam.OnDragSceneObject(); //Lock camera movement. CurrentlyDraggedPickable = mobileTouchPickable; currentlyDraggedTransformPosition = CurrentlyDraggedTransform.position; invokeMoveStartedOnDrag = true; currentDragStartPos = CurrentlyDraggedTransform.position; draggedTransformOffset = Vector3.zero; draggedTransformHeightOffset = Vector3.zero; draggedItemCustomOffset = Vector3.zero; if (intersectionPoint != null && intersectionPoint.HasValue == true) { //Find offset of item transform relative to ground. Vector3 groundPosCenter = Vector3.zero; Ray groundScanRayCenter = new Ray(CurrentlyDraggedTransform.position, -mobileTouchCam.RefPlane.normal); bool rayHitSuccess = mobileTouchCam.RaycastGround(groundScanRayCenter, out groundPosCenter); if (rayHitSuccess == true) { draggedTransformHeightOffset = CurrentlyDraggedTransform.position - groundPosCenter; } else { groundPosCenter = CurrentlyDraggedTransform.position; } draggedTransformOffset = groundPosCenter - intersectionPoint.Value; } itemInitialDragOffsetWorld = (ComputeDragPosition(fingerDownPos, SnapToGrid) - CurrentlyDraggedTransform.position); } } }