public void OnFingerDown(LeanFinger finger) { // Does the prefab exist? if (Prefab != null) { // Get the RaycastResults under this finger's current position var results = LeanTouch.RaycastGui(finger.ScreenPosition); if (results.Count > 0) { // Is this finger over this UI element? if (results[0].gameObject == gameObject) { // Spawn prefab var instance = Instantiate(Prefab); // Position instance.transform.position = ScreenDepth.Convert(finger.ScreenPosition, gameObject); // Select instance.Select(finger); } } } }
public void OnFingerDown(LeanFinger finger) { // Does the prefab exist? if (Prefab != null) { // Get the RaycastResults under this finger's current position var results = LeanTouch.RaycastGui(finger.ScreenPosition); if (results.Count > 0) { // Is this finger over this UI element? if (results[0].gameObject == gameObject) { // Spawn prefab var instance = Instantiate(Prefab); // Assign finger instance.SpawnFinger = finger; // Assign distance instance.Distance = Distance; } } } }
public void OnFingerDown(LeanFinger finger) { // Does the prefab exist? if (partPrefab != null) { // Get the RaycastResults under this finger's current position var results = LeanTouch.RaycastGui(finger.ScreenPosition); if (results.Count > 0) { // Is this finger over this UI element? if (results[0].gameObject == gameObject) { // Spawn prefab var partInstance = Instantiate(partPrefab); // Position partInstance.transform.position = ScreenDepth.Convert(finger.ScreenPosition, Camera, gameObject); Contraption currentContraption = ContraptionsManager.instance.GetCurrentContraption(); currentContraption.AddPart(partInstance.GetComponent <Part>()); LeanSelectable.DeselectAll(); // Select partInstance.GetComponent <LeanSelectable>().Select(finger); } } } }
public void OnFingerDown(LeanFinger finger) { // Does the prefab exist? if (constructed != null) { // Get the RaycastResults under this finger's current position var results = LeanTouch.RaycastGui(finger.ScreenPosition); if (results.Count > 0) { // Is this finger over this UI element? if (results[0].gameObject == gameObject) { // Spawn prefab // var instance = Instantiate(constructed); // Position var pos = ScreenDepth.Convert(finger.ScreenPosition, Camera, gameObject); pos.z = 0; constructed.transform.position = pos; // Select // instance.Select(finger); } } } }
private void TryGetComponent(SelectType selectUsing, Vector2 screenPosition, ref Component component) { switch (selectUsing) { case SelectType.Raycast3D: { // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null) { var ray = camera.ScreenPointToRay(screenPosition); var hit = default(RaycastHit); if (Physics.Raycast(ray, out hit, float.PositiveInfinity, LayerMask) == true) { Debug.Log("acertou"); component = hit.collider; } } else { Debug.LogError("Failed to find camera. Either tag your cameras MainCamera, or set one in this component.", this); } } break; case SelectType.Overlap2D: { // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null) { var point = camera.ScreenToWorldPoint(screenPosition); component = Physics2D.OverlapPoint(point, LayerMask); } else { Debug.LogError("Failed to find camera. Either tag your cameras MainCamera, or set one in this component.", this); } } break; case SelectType.CanvasUI: { var results = LeanTouch.RaycastGui(screenPosition, LayerMask); if (results != null && results.Count > 0) { component = results[0].gameObject.transform; } } break; } }
// NOTE: This must be called from somewhere public void SelectScreenPosition(LeanFinger finger, Vector2 screenPosition) { // Stores the component we hit (Collider or Collider2D) var component = default(Component); switch (SelectUsing) { case SelectType.Raycast3D: { // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null) { var ray = camera.ScreenPointToRay(screenPosition); var hit = default(RaycastHit); if (Physics.Raycast(ray, out hit, float.PositiveInfinity, LayerMask) == true) { //Debug.Log( "SelectScreenPosition() finger = " + finger + ", screenPosition = " + screenPosition + ", hit.collider = " + hit.collider.gameObject.name ); component = hit.collider; } } } break; case SelectType.Overlap2D: { // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null) { var point = camera.ScreenToWorldPoint(screenPosition); component = Physics2D.OverlapPoint(point, LayerMask); } } break; case SelectType.CanvasUI: { var results = LeanTouch.RaycastGui(screenPosition, LayerMask); if (results != null && results.Count > 0) { component = results[0].gameObject.transform; } } break; } // Select the component Select(finger, component); }
protected override void OnSelectUp(LeanFinger finger) { // Stores the component we hit (Collider or Collider2D) var component = default(Component); switch (SelectUsing) { case SelectType.Raycast3D: { // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null) { var ray = camera.ScreenPointToRay(finger.ScreenPosition); var hit = default(RaycastHit); if (Physics.Raycast(ray, out hit, float.PositiveInfinity, LayerMask) == true) { component = hit.collider; } } } break; case SelectType.Overlap2D: { // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null) { var point = camera.ScreenToWorldPoint(finger.ScreenPosition); component = Physics2D.OverlapPoint(point, LayerMask); } } break; case SelectType.CanvasUI: { var results = LeanTouch.RaycastGui(finger.ScreenPosition, LayerMask); if (results != null && results.Count > 0) { component = results[0].gameObject.transform; } } break; } // SelectTargetForTransform the component Drop(finger, component); }
private void FingerDown(LeanFinger finger) { var results = LeanTouch.RaycastGui(finger.ScreenPosition); if (results.Count > 0) { if (results[0].gameObject == Target) { validFingers.Add(finger); } } }
// When Starts the touch, Check if it started on the Joystick Background. If yes the Move Joystick private void OnFingerDown(LeanFinger finger) { if (finger.StartedOverGui == true) { RaycastResult guiObj; guiObj = LeanTouch.RaycastGui(finger.ScreenPosition); if (guiObj.gameObject.CompareTag("Joystick")) { startedOverJoystick = true; MoveJoystick(finger); } } }
public bool ElementOverlapped(LeanFinger finger) { var results = LeanTouch.RaycastGui(finger.ScreenPosition, -1); if (results != null && results.Count > 0) { if (results[0].gameObject == gameObject) { return(true); } } return(false); }
private void FingerDown(LeanFinger finger) { // Find GUI elements under finger var results = LeanTouch.RaycastGui(finger.ScreenPosition); if (results.Count > 0) { // If the first one is the target, select if (results[0].gameObject.transform == Target) { Selectable.Select(finger); } } }
private void FingerDown(LeanFinger finger) { var results = LeanTouch.RaycastGui(finger.ScreenPosition, LayerMask); if (results != null && results.Count > 0) { if (results[0].gameObject == gameObject) { Fingers.Add(finger); if (OnDown != null) { OnDown.Invoke(finger); } } } }
private void FingerDown(LeanFinger finger) { if (AutoClose == true) { // If this popup was tapped, ignore var results = LeanTouch.RaycastGui(finger.ScreenPosition); for (var i = 0; i < results.Count; i++) { var result = results[i]; if (result.gameObject == gameObject) { return; } } // Close? Close(); } }
protected override void OnSelectUp(LeanFinger finger) { // Stores the component we hit (Collider or Collider2D) var component = default(Component); switch (SelectUsing) { case SelectType.Raycast3D: { // Make sure the camera exists var camera = LeanHelper.GetCamera(Camera, gameObject); if (camera != null) { var ray = camera.ScreenPointToRay(finger.ScreenPosition); var hit = default(RaycastHit); if (Physics.Raycast(ray, out hit, float.PositiveInfinity, LayerMask) == true) { component = hit.collider; } } else { Debug.LogError("Failed to find camera. Either tag your cameras MainCamera, or set one in this component.", this); } } break; case SelectType.Overlap2D: { // Make sure the camera exists var camera = LeanHelper.GetCamera(Camera, gameObject); if (camera != null) { var ray = camera.ScreenPointToRay(finger.ScreenPosition); var count = Physics2D.GetRayIntersectionNonAlloc(ray, raycastHit2Ds, float.PositiveInfinity, LayerMask); if (count > 0) { component = raycastHit2Ds[0].transform; } } else { Debug.LogError("Failed to find camera. Either tag your cameras MainCamera, or set one in this component.", this); } } break; case SelectType.CanvasUI: { var results = LeanTouch.RaycastGui(finger.ScreenPosition, LayerMask); if (results != null && results.Count > 0) { component = results[0].gameObject.transform; } } break; } // Select the component Drop(finger, component); }
// NOTE: This must be called from somewhere public void SelectScreenPosition(LeanFinger finger, Vector2 screenPosition) { // Stores the component we hit (Collider or Collider2D) var component = default(Component); switch (SelectUsing) { case SelectType.Raycast3D: { // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null) { var ray = camera.ScreenPointToRay(screenPosition); var hit = default(RaycastHit); if (Physics.Raycast(ray, out hit, float.PositiveInfinity, LayerMask) == true) { component = hit.collider; } if (Physics.Raycast(ray, out hit, float.PositiveInfinity, clickable)) { hit.collider.GetComponent <colorchanger>().ChangeColor(h, s, v); } } else { Debug.LogError("Failed to find camera. Either tag your cameras MainCamera, or set one in this component.", this); } } break; case SelectType.Overlap2D: { // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null) { var point = camera.ScreenToWorldPoint(screenPosition); component = Physics2D.OverlapPoint(point, LayerMask); } else { Debug.LogError("Failed to find camera. Either tag your cameras MainCamera, or set one in this component.", this); } } break; case SelectType.CanvasUI: { var results = LeanTouch.RaycastGui(screenPosition, LayerMask); if (results != null && results.Count > 0) { component = results[0].gameObject.transform; } } break; } // Select the component Select(finger, component); }
private void TryGetComponent(SelectType selectUsing, Vector2 screenPosition, ref Component component) { switch (selectUsing) { case SelectType.Raycast3D: { // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null) { var ray = camera.ScreenPointToRay(screenPosition); var count = Physics.RaycastNonAlloc(ray, raycastHits, float.PositiveInfinity, LayerMask); if (count > 0) { component = raycastHits[GetClosestRaycastHitsIndex(count)].transform; } } else { Debug.LogError("Failed to find camera. Either tag your cameras MainCamera, or set one in this component.", this); } } break; case SelectType.Overlap2D: { // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null) { var ray = camera.ScreenPointToRay(screenPosition); var count = Physics2D.GetRayIntersectionNonAlloc(ray, raycastHit2Ds, float.PositiveInfinity, LayerMask); if (count > 0) { component = raycastHit2Ds[0].transform; } } else { Debug.LogError("Failed to find camera. Either tag your cameras MainCamera, or set one in this component.", this); } } break; case SelectType.CanvasUI: { var results = LeanTouch.RaycastGui(screenPosition, LayerMask); if (results != null && results.Count > 0) { component = results[0].gameObject.transform; } } break; case SelectType.ScreenDistance: { var bestDistance = MaxScreenDistance * LeanTouch.ScalingFactor; bestDistance *= bestDistance; // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null) { foreach (var selectable in LeanSelectable.Instances) { var distance = Vector2.SqrMagnitude(GetScreenPoint(camera, selectable.transform) - screenPosition); if (distance <= bestDistance) { bestDistance = distance; component = selectable; } } } } break; } }
protected void TryGetComponent(SelectType selectUsing, Vector2 screenPosition, ref Component component, ref Vector3 worldPosition) { switch (selectUsing) { case SelectType.Raycast3D: { // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null && camera.pixelRect.Contains(screenPosition) == true) { var ray = camera.ScreenPointToRay(screenPosition); var count = Physics.RaycastNonAlloc(ray, raycastHits, float.PositiveInfinity, LayerMask); if (count > 0) { var closestHit = raycastHits[GetClosestRaycastHitsIndex(count)]; component = closestHit.transform; worldPosition = closestHit.point; } } else { Debug.LogError("Failed to find camera. Either tag your cameras MainCamera, or set one in this component.", this); } } break; case SelectType.Overlap2D: { // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null && camera.pixelRect.Contains(screenPosition) == true) { var ray = camera.ScreenPointToRay(screenPosition); var slope = -ray.direction.z; if (slope != 0.0f) { var point = ray.GetPoint(ray.origin.z / slope); component = Physics2D.OverlapPoint(point, LayerMask); if (component != null) { worldPosition = component.transform.position; } } } else { Debug.LogError("Failed to find camera. Either tag your cameras MainCamera, or set one in this component.", this); } } break; case SelectType.CanvasUI: { var results = LeanTouch.RaycastGui(screenPosition, LayerMask); if (results != null && results.Count > 0) { var firstTransform = results[0].gameObject.transform; component = firstTransform; worldPosition = firstTransform.position; } } break; case SelectType.ScreenDistance: { var bestDistance = MaxScreenDistance * LeanTouch.ScalingFactor; bestDistance *= bestDistance; // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null && camera.pixelRect.Contains(screenPosition) == true) { foreach (var selectable in LeanSelectable.Instances) { var distance = Vector2.SqrMagnitude(GetScreenPoint(camera, selectable.transform) - screenPosition); if (distance <= bestDistance) { bestDistance = distance; component = selectable; worldPosition = selectable.transform.position; } } } } break; case SelectType.Intersect2D: { // Make sure the camera exists var camera = LeanTouch.GetCamera(Camera, gameObject); if (camera != null && camera.pixelRect.Contains(screenPosition) == true) { var ray = camera.ScreenPointToRay(screenPosition); var count = Physics2D.GetRayIntersectionNonAlloc(ray, raycastHit2Ds, float.PositiveInfinity, LayerMask); if (count > 0) { var firstHit = raycastHit2Ds[0]; component = firstHit.transform; worldPosition = firstHit.point; } } else { Debug.LogError("Failed to find camera. Either tag your cameras MainCamera, or set one in this component.", this); } } break; } }