Example-Code / Utility
README
This folder provides examples of some utility classes I have created to help in development within Unity.

RaycasterHelper: 
* At a high level, this is a utility that helps you easily find out if you're pointer is over anything in the game.
  There's different techniques that I've optimized to help you get those results.

* At a lower level, I have optimized collecting raycasting data in a few different ways.
  For example, you can setup objects you want info about at runtime by either tagging them or assigning them a layermask.
  This helps performance because the number of objects the raycast system has to poll is drastically reduced if you use a layermask.
  You're essentially telling Unity "only look if my pointer's over an object on this part of the game"
  You can also set a capacity to a member List if you know the max amount of objects that will be collected at any time.
  This helps performance by not dynamically expanding a list, which triggers an allocation at runtime.

SceneAutoLoader:
* At a high level, this utility lets you automatically load into the scene that you're in when you press play.
  This is cool because you may have some kind of startup process that would need to execute before you get to the scene you pressed play on.

Timer:
* At a high level, this is a generic timer that you can start and stop at runtime.
  It yells when its done via events. 

* At a lower level, I've refactored this to a C# script. Usually I'd make a separate Unity project for things like these.
  The project would be a .DLL template and I'd write this in C++ and import it into Unity.
  I'd do that because its much more performant to write something like this in C++ and reference it in Unity.

todo add the C++ equivalent of this.