using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Sun_Ray : MonoBehaviour
{
public LayerMask NeedLayer;
RaycastHit2D maskHit;
Mirror_BP HitMirrorBP;
void Update()
{
maskHit = Physics2D.Raycast(transform.position, Vector2.down, 10f, NeedLayer);
if (maskHit.transform != null)
{
if(maskHit.collider.tag == "Mirror")
{
Debug.DrawLine(transform.position, maskHit.point, Color.red);
HitMirrorBP = maskHit.transform.GetComponent<Mirror_BP>();
if(HitMirrorBP != null)
{
HitMirrorBP.Mirror();
}
}
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Mirror_BP : MonoBehaviour
{
public Vector2 PointHit;
public Vector2 inDirection;
public Transform NormalPos;
public float distance;
public LayerMask NeedLayer;
public void Mirror()
{
RaycastHit2D Hit = Physics2D.Raycast(new Vector2(-2,0), Vector2.right, distance, NeedLayer);
if (Hit.transform != null)
{
if(Hit.collider.tag == "Mirror")
{
Debug.DrawLine(transform.position, Hit.point, Color.red);
Hit.collider.GetComponent<Mirror_BP>().Mirror();
}
}
else
{
RaycastHit2D DebugHit = Physics2D.Raycast(new Vector2(-2, 0), Vector2.right, distance);
Debug.DrawLine(new Vector2(-2, 0), DebugHit.point, Color.blue);
}
}
}