private bool HitTest() { if (buildingCollider == null) { return(false); } RaycastHit hit; OnlineMapsControlBaseDynamicMesh control = container.control; return(buildingCollider.Raycast(control.activeCamera.ScreenPointToRay(control.GetInputPosition()), out hit, OnlineMapsUtils.maxRaycastDistance)); }
private void Update() { #if USE_MOUSE_ROTATION if (Input.GetMouseButton(1)) { Vector2 inputPosition = control.GetInputPosition(); #else if (Input.touchCount == 2) { Vector2 p1 = Input.GetTouch(0).position; Vector2 p2 = Input.GetTouch(1).position; Vector2 inputPosition = Vector2.Lerp(p1, p2, 0.5f); #endif if (!control.IsCursorOnUIElement(inputPosition)) { isCameraControl = true; if (lastInputPosition == Vector2.zero) { lastInputPosition = inputPosition; } if (lastInputPosition != inputPosition && lastInputPosition != Vector2.zero) { Vector2 offset = lastInputPosition - inputPosition; bool changed = offset.sqrMagnitude > 0 && (!lockPan || !lockTilt); if (!lockTilt) { rotation.x -= offset.y / 10f * speed.x; } if (!lockPan) { rotation.y -= offset.x / 10f * speed.y; } if (changed && OnChangedByInput != null) { OnChangedByInput(); } } lastInputPosition = inputPosition; } } else if (isCameraControl) { lastInputPosition = Vector2.zero; isCameraControl = false; } }