// MIT License
// https://gitlab.com/ilnprj
// Copyright (c) 2020 ilnprj
using UnityEngine;
namespace RadarComponents
{
///
/// Line 2DRaycast with circle rotation
///
public class LineRaycast : MonoBehaviour
{
[SerializeField]
private Vector3 rotationVector = default;
[SerializeField]
private float speed = default;
[SerializeField]
private float distanceRay = 75f;
private void Update()
{
transform.Rotate(rotationVector * speed);
Debug.DrawRay(transform.position, GetVectorFromAngle(transform.eulerAngles.z) * distanceRay, Color.green);
RaycastHit2D hit = Physics2D.Raycast(transform.position, GetVectorFromAngle(transform.eulerAngles.z), distanceRay);
if (hit.collider != null)
{
//FIXME: Raycast need one shot, this creates many nasty calls :(
hit.collider.GetComponent().StartLerp();
}
}
private Vector3 GetVectorFromAngle(float angle)
{
float angleRad = angle * (Mathf.PI / 180f);
return new Vector3(Mathf.Cos(angleRad), Mathf.Sin(angleRad));
}
}
}