Get Child GameObject (not Child Transform)

Despite much searching (forums, references) I could not find a method that returns the Child GameObject of a Parent GameObject. I can get child components and transforms, just not GameObjects. I can find child GameObjects from the root, but that requires every child to be uniquely named. Hence, I felt compelled to create this method:

private GameObject FindChild(GameObject pRoot, string pName)
{
   return pRoot.transform.Find(pName).gameObject;
}

// Usage
GameObject child = FindChild(parentGameObject, "ChildName");
child.renderer.material.color = Color.red;

Does Unity already have a method for this?
i.e. Did I accidentally reinvent the wheel?
Perhaps I don’t need/want child GameObjects?

Never use gameobjects!
It’s rare to use gameobjects, use transforms instead!
and I gunaratee u with Transform.Parent function, you’ll solve it within no time.

and how abt transform.gameObject?
according to scripting reference it returns GameObject that current transform is attached to.

I have the exact same question and up until now I would have to implement the method suggested in the question. How do transforms relate to the child gameobjects of a gameobject? If I have my parent, how do I go about getting a child of that parent?

This will find the named parent game object and return the named child gameobject of it

private GameObject FindChild(string pRoot, string pName)
{
	Transform pTransform = GameObject.Find(pRoot).GetComponent<Transform>();
	foreach (Transform trs in pTransform) {
		if (trs.gameObject.name == pName)
			return trs.gameObject;
	}
   return return null;
}