Reflecting laser light in Unity

  1. We need to have a start point of the laser. That point can be the object where the laser will be shot from.
  2. We need to track the laser in the direction it is moving towards and see whether it will collide with an object or not.
  3. If the laser hits an object tagged as a mirror, we need to do two things; we need to calculate the direction of the reflected beam, and we need to store the point of impact in the mirror as a point within the laser beam.
  4. Repeat point 2, 3 and 4 until we either hit an object that is not a mirror, or not hit anything at all. If the laser does not collide with any thing, we will set its end point to be a point that is out of the screen bounds to give the illusion that the laser is shooting to infinity.
Figure 1: The variables used in the LaserBeam class
Figure 2: The class constructor
Figure 3: The CastLaser() function
Figure 4: CheckHit Function
Figure 5: The UpdateLaser Function
Figure 6: The reflection system in action

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Samir Georgy

Samir Georgy

Loves playing video games, passionate about making them, and I have too many stories to tell!