These are not the same.
Resources.Load is going to create a new uninstantiated
This means your first example is going to create a new game object, then set that object equal to the new game object created by
Resources.Load. That means two objects are going to be created, an empty game object added to the scene (from the
new GameObject() call) and an uninstantiated game object from the
It's worth noting that just using
Resources.Load for a prefab will not create that prefab in the scene like
new GameObject() creates a gameobject in the scene. Likely, what you intend to do is:
obj = GameObject.Instantiate(
Resources.Load("Prefabs/Ball", typeof(GameObject))) as GameObject;
Note the additional use of
Instantiate to create the loaded prefab into the scene.