You can use
RequireComponent in your Unity scripts to save yourself some work and avoid errors.
When your script requires a component, Unity will add a component of that type to your
GameObject automatically when you add your script (if a component of the required type is not already there). You also cannot remove this component form the
GameObject while the script is attached, which could prevent accidents like removing the wrong component.
Here is a simple example:
public class PlayerInput : MonoBehaviour
playerCol = GetComponent<Collider>();
PlayerInput script requires that a collider is attached to any
GameObject this script is added to. Now you can be confident that the assignment of the collider to
playerCol will always find a collider (
GetComponent is a common source of null reference errors, which this technique avoids completely).
RequireComponent to save yourself a bit of time and many headaches.