private void DropOutBG(List <Line> circleLines) { foreach (var line in circleLines) { D2dDestructible.SliceAll(line.Nodes[0].transform.position, line.Nodes[1].transform.position, 0.2f, stampTax, 10); Destroy(line.gameObject); } }
// Update is called once per frame void Update() { laserShowTime -= Time.deltaTime; var pos = transform.position; var dir = new Vector3(laserDistLength, 0, 0); dir = transform.rotation * dir; var endPoint = pos + dir; if (Input.GetKeyUp(KeyCode.L) || player.GetButtonUp("B")) { laserShowTime = laserTime; } var lineRenderer = gameObject.GetComponent <LineRenderer> (); if (laserShowTime > 0.0f) { destruct++; if (destruct > destructPerFrame) { destruct = 0; var mainCamera = Camera.main; Debug.Log("LASER! PEW PEW"); Debug.Log("XY: " + pos.x + ", " + pos.y); Debug.Log("XY: " + endPoint.x + ", " + endPoint.y); // var startPos = D2dHelper.ScreenToWorldPosition(pos, 0, mainCamera); // var endPos = D2dHelper.ScreenToWorldPosition(endPoint, 0, mainCamera); D2dDestructible.SliceAll(pos, endPoint, Thickness, StampTex, Hardness); RaycastHit2D[] raycastHit2ds = Physics2D.RaycastAll(pos, (endPoint - pos).normalized, Vector2.Distance(endPoint, pos)); foreach (RaycastHit2D raycastHit2d in raycastHit2ds) { Villager villager = raycastHit2d.collider.gameObject.GetComponent <Villager>(); if (villager != null) { villager.Die(); } } } lineRenderer.enabled = true; lineRenderer.SetPositions( new Vector3[] { pos, endPoint } ); } else { lineRenderer.enabled = false; } }