using System.Collections; using System.Collections.Generic; using UnityEngine; public class Laser : MonoBehaviour { public bool flipDirection; float maxDistance = 1000.0f; bool isHorizontal; LineRenderer laserLine; void Start() { laserLine = GetComponent(); isHorizontal = GetComponent().isHorizontal; } void Update() { laserLine.SetPosition(0, transform.position); if (isHorizontal) { float endpointY = flipDirection ? transform.position.y - maxDistance : transform.position.y + maxDistance; RaycastHit2D hit = Physics2D.Raycast(transform.position, flipDirection ? Vector2.down : Vector2.up); if (hit.collider) endpointY = hit.collider.transform.position.y; laserLine.SetPosition(1, new Vector3(transform.position.x, endpointY, 0)); } else { float endpointX = flipDirection ? transform.position.x - maxDistance : transform.position.x + maxDistance; RaycastHit2D hit = Physics2D.Raycast(transform.position, flipDirection ? Vector2.left : Vector2.right); if (hit.collider) endpointX = hit.collider.transform.position.x; laserLine.SetPosition(1, new Vector3(endpointX, transform.position.y, 0)); } } }