private void Update() { if (!_mousetracker) { _mousetracker = FindObjectOfType <CanvasMouseTracker>(); } else if (Input.GetMouseButtonDown(0) && !_mousetracker.RayCastHitPlayer()) { Vector3 mouse = Input.mousePosition; Ray castPoint = Camera.main.ScreenPointToRay(mouse); RaycastHit hit; Vector3 clickPos = Vector3.zero; if (Physics.Raycast(castPoint, out hit, Mathf.Infinity)) { clickPos = hit.point; //if (hit.point.z < 0) return; } clickPos = new Vector3(clickPos.x, clickPos.y, 0); Vector3 originToTarget = new Vector3( targetObject.transform.position.x - clickPos.x, targetObject.transform.position.y - clickPos.y, rayDepthDistance ); Vector3 orthoLine = Quaternion.AngleAxis(-90, Vector3.forward) * originToTarget; _orthoLine = orthoLine; _clickedPos = clickPos; StopAllCoroutines(); for (int i = 0; i < raysCount; i++) { StartCoroutine(ResetTrailRenderer(_trails[i].GetComponent <TrailRenderer>())); _trails[i].transform.position = clickPos; _trailsPoints[i].Clear(); } GameObject particleBig = Instantiate(particleAroundOrigin); particleBig.transform.position = clickPos; ThrowLineRays(_orthoLine, originToTarget); for (int i = 0; i < raysCount; i++) { StartCoroutine(ThrowTrails(i)); //_trails[i].GetComponent<MoveEcho>().StartSpreading(_trailsPoints[i]); } } }
private void Start() { _mousetracker = FindObjectOfType <CanvasMouseTracker>(); for (int i = 0; i < raysCount; i++) { _lineBounces.Add(0); //_lineRenderers.Add(Instantiate(lineObject)); _trails.Add(Instantiate(trailObject)); _trails[i].transform.position = transform.position; _trailsPoints.Add(new List <Vector3>()); } }
void FixedUpdate() { //if mouse button (left hand side) pressed instantiate a raycast //if (Input.GetMouseButtonDown(0)) if (!_mousetracker) { _mousetracker = FindObjectOfType <CanvasMouseTracker>(); } else if (Input.GetMouseButtonDown(0) && !_mousetracker.RayCastHitPlayer()) { //create a ray cast and set it to the mouses cursor position in game Vector3 mousePos = Input.mousePosition; Ray ray = Camera.main.ScreenPointToRay(mousePos); RaycastHit hit; if (Physics.Raycast(ray, out hit, _rayCastDistance)) { OnScannerPlaced?.Invoke(); //spawn UI for big circle GameObject bigcircleUI = Instantiate(bigcircleObject, Camera.main.WorldToScreenPoint(new Vector3( GameObject.FindGameObjectWithTag("Player").gameObject.transform.position.x, GameObject.FindGameObjectWithTag("Player").gameObject.transform.position.y, 0)), Quaternion.identity); bigcircleUI.transform.SetParent(GameObject.FindGameObjectWithTag("Canvas_SS").transform, true); float dist = CalculateDistance(mousePos); StartCoroutine(ScaleSobelLigthRange(scannerRadius)); Vector3 mousePosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, -Camera.main.transform.position.z); mousePosition = Camera.main.ScreenToWorldPoint(mousePosition); GameObject circleUI = Instantiate(particleTappingObject, mousePosition, Quaternion.identity); //circleUI.transform.SetParent(GameObject.FindGameObjectWithTag("Canvas_SS").transform, true); circleUI.GetComponent <ParticleSystem>()?.Play(); } } }
// Use this for initialization void Start() { started = true; _mousetracker = FindObjectOfType <CanvasMouseTracker>(); }