유니티로 안드로이드 갤러리 호출

2021. 4. 13. 11:15개발/유니티

1
2
3
4
5
6
7
8
9
10
11
public void OpenGallery()
{
    AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    AndroidJavaObject unityActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
    AndroidJavaClass intentStaticClass = new AndroidJavaClass("android.content.Intent");
    string actionView = intentStaticClass.GetStatic<string>("ACTION_VIEW");
    AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
    AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse""content://media/external/images/media");
    AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent", actionView, uriObject);
    unityActivity.Call("startActivity", intent);
}
cs

 

 

이렇게 한 세트이다.

 

다만 갤러리만 호출될뿐 앨범에서 이미지를 가져오거나 하는건 플러그인을 만들어야한다.

 

startActivityForResult 함수가 유니티에서는 안되기 때문이다.

 

 

 

갤러리에서 이미지를 픽업하고 싶다면

 

https://github.com/yasirkula/UnityNativeGallery

 

yasirkula/UnityNativeGallery

A native Unity plugin to interact with Gallery/Photos on Android & iOS (save and/or load images/videos) - yasirkula/UnityNativeGallery

github.com

 

이 아저씨의 플러그인을 사용하면 좋다.

 

안드로이드와 IOS 전부 사용가능하고 무엇보다도 무료!