티스토리 뷰
반응형
#어셋 Native Gallery 이용
https://assetstore.unity.com/packages/tools/integration/native-gallery-for-android-ios-112630
#코드
public RawImage img;
private void Start()
{
if (!Permission.HasUserAuthorizedPermission(Permission.ExternalStorageWrite))
{
Permission.RequestUserPermission(Permission.ExternalStorageWrite);
}
}
public void CaptureAndSave()
{
StartCoroutine(CaptureScreenshotAndSave());
}
Texture2D screenImage;
private IEnumerator CaptureScreenshotAndSave()
{
yield return new WaitForEndOfFrame();
screenImage = ScreenCapture.CaptureScreenshotAsTexture();
img.texture = screenImage;
NativeGallery.Permission permission = NativeGallery.CheckPermission(NativeGallery.PermissionType.Write,NativeGallery.MediaType.Image);
//권한 확인 밑 다이얼로그띄우기
if (permission == NativeGallery.Permission.Denied)
{
if (NativeGallery.CanOpenSettings())
{
NativeGallery.OpenSettings();
}
}
NativeGallery.SaveImageToGallery(screenImage, "album", "test_folder", Callback);
}
private void Callback(bool success, string path)
{
if (success)
{
}
Destroy(screenImage);
}
#Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player"
xmlns:tools="http://schemas.android.com/tools">
<!-- 다음 권한은 외부 저장소에 캡처된 이미지를 저장하기 위해 필요합니다. -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 캡처된 이미지를 읽어들이기 위해 외부 저장소의 읽기 권한이 필요할 수 있습니다. -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 캡처된 이미지를 온라인으로 공유하거나 업로드하기 위해 인터넷 액세스 권한이 필요할 수 있습니다. -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 네트워크 상태를 확인하여 온라인 작업을 수행하기 위해 필요할 수 있습니다. -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 다른 앱 위에 레이어를 표시하여 화면을 캡처하기 위해 시스템 경고 창에 대한 권한이 필요할 수 있습니다. -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<application android:requestLegacyExternalStorage="true" >
<activity android:name="com.unity3d.player.UnityPlayerActivity"
android:theme="@style/UnityThemeSelector">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
</activity>
</application>
</manifest>
#Unity #andorid #ios #갤러리 #gallery
반응형
'유니티(unity)' 카테고리의 다른 글
[유니티/unity]WindowsVideoMedia error unhandled Color Standard: 0 falling back to default this may result in rendering issues 이슈 해결 방법 (0) | 2024.03.13 |
---|---|
[c#/unity] 유니티에서 pdf 생성(with iTextSharp 5.0 ) (0) | 2024.02.27 |
[unity/webcam]웹캠을 이용하여 픽셀변화량에 따라 true/false 반환 알고리즘 (0) | 2024.02.19 |
[unity/Simple Disk Utils]ios/android/windows 남은 용량 확인(with source) (0) | 2024.02.07 |
[C#/Unity] UDP 기본 코드 (0) | 2024.01.31 |
댓글
반응형