GameObject vs. MonoBehaviour vs. ScriptableObject vs. UnityEngine.Object