puzzle-jam-ii/Assets/Scripts/Laser.cs
2020-06-13 19:02:55 -05:00

39 lines
1.3 KiB
C#

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<LineRenderer>();
isHorizontal = GetComponent<Turret>().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));
}
}
}