Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class Laser : MonoBehaviour
- {
- public int reflections;
- public float maxLength;
- private LineRenderer lineRenderer;
- private Ray2D ray;
- private RaycastHit2D hit;
- private void Awake()
- {
- lineRenderer = GetComponent<LineRenderer>();
- }
- private void Update()
- {
- ray = new Ray2D(transform.position, transform.right);
- lineRenderer.positionCount = 1;
- lineRenderer.SetPosition(0, transform.position);
- //float remainingLength = maxLength;
- for (int i = 0; i < reflections; i++)
- {
- hit = Physics2D.Raycast(ray.origin, ray.direction);
- lineRenderer.positionCount += 1;
- lineRenderer.SetPosition(lineRenderer.positionCount - 1, hit.point);
- ///remainingLength -= Vector2.Distance(ray.origin, hit.point);
- ray = new Ray2D(hit.point, Vector2.Reflect(ray.direction, hit.normal));
- //else
- {
- //lineRenderer.positionCount += 1;
- //lineRenderer.SetPosition(lineRenderer.positionCount - 1, ray.origin + ray.direction * remainingLength);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement