So yeah. Two different ways. Not sure why one is better than the other. Yet.

Method 1. Attach RigidBody2D to the Game Object and then create a local private variable in the script. This approach feels better imo, so that is what I’m using.

RigidBody2d rb2d; //private 

void Awake()
{
   rb2d = GetComponent<RigidBody2d>();
}

Method 2. Attach RigidBody2D to the Game Object and then create a public local variable in the script. Then drag in the RigidBody2D to the rb2d field within the inspector. Maybe those who like to write less code do this? Hell, maybe there is some other reason I don’t know of?

public RigidBody2d rb2d; 

void Awake() 
{ 
  //No need to GetComponent as it's already linked in the inspector. 
  //rb2d = GetComponent<RigidBody2d>();
}