AssetDatabase.LoadMainAssetAtPath("Assets/textures/hoge.png");
で取得できるのはどうやらTextureで、直接Spriteとしては使用できないみたい。
(Resources.Loadでは直接Spriteとして使えるのに...)
なので、Spriteに変換する処理を入れる。
Texture2D texture = (Texture2D)AssetDatabase.LoadMainAssetAtPath("Assets/textures/hoge.png");
Sprite sprite = Sprite.Create(texture, new Rect(0,0,texture.width,texture.height), Vector2.zero);