2021-09-02 14:18:26 +08:00
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
/// <summary>
|
2021-09-07 11:00:32 +08:00
|
|
|
|
///
|
2021-09-02 14:18:26 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class ImageSelectorController
|
|
|
|
|
|
{
|
2021-09-07 11:00:32 +08:00
|
|
|
|
private AndroidJavaObject mainActivityObject = null;
|
2021-09-07 15:26:43 +08:00
|
|
|
|
#if UNITY_IOS
|
|
|
|
|
|
[DllImport("__Internal")]
|
|
|
|
|
|
private static extern void IOS_OpenCamera();
|
|
|
|
|
|
[DllImport("__Internal")]
|
|
|
|
|
|
private static extern void IOS_OpenAlbum();
|
|
|
|
|
|
#endif
|
2021-09-02 14:18:26 +08:00
|
|
|
|
private static ImageSelectorController _instance;
|
|
|
|
|
|
public static ImageSelectorController Instance
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
2021-09-07 15:26:43 +08:00
|
|
|
|
#if !UNITY_EDITOR
|
2021-09-02 14:18:26 +08:00
|
|
|
|
if (_instance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
_instance = new ImageSelectorController();
|
|
|
|
|
|
}
|
2021-09-07 15:26:43 +08:00
|
|
|
|
#endif
|
2021-09-02 14:18:26 +08:00
|
|
|
|
return _instance;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private ImageSelectorController()
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_ANDROID
|
2021-09-07 11:00:32 +08:00
|
|
|
|
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
|
|
|
|
|
|
mainActivityObject = jc.GetStatic<AndroidJavaObject>("currentActivity");
|
2021-09-02 14:18:26 +08:00
|
|
|
|
#elif UNITY_IOS
|
|
|
|
|
|
//RegisterApp(_APP_ID);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
2021-09-08 10:26:32 +08:00
|
|
|
|
|
2021-09-02 14:18:26 +08:00
|
|
|
|
public void Select()
|
|
|
|
|
|
{
|
2021-09-07 15:26:43 +08:00
|
|
|
|
#if UNITY_IOS
|
|
|
|
|
|
IOS_OpenAlbum();
|
|
|
|
|
|
#else
|
2021-09-07 11:00:32 +08:00
|
|
|
|
mainActivityObject.Call("Select");
|
2021-09-07 15:26:43 +08:00
|
|
|
|
#endif
|
2021-09-02 14:18:26 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|