Esempio n. 1
0
    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]);
            }
        }
    }
Esempio n. 2
0
    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>());
        }
    }
Esempio n. 3
0
    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();
            }
        }
    }
Esempio n. 4
0
 // Use this for initialization
 void Start()
 {
     started       = true;
     _mousetracker = FindObjectOfType <CanvasMouseTracker>();
 }