반응형
안녕하세요. 각종 Social service에 Text나 Image를 공유하는 use case가 있습니다.
Android , iOS 플랫폼에서 Social service에 공유 기능을 쉽게 할 수 있는 Asset을 이용해 구현해보겠습니다.
공유 기능에 사용한 plugin은 UnityNativeShare입니다.
github.com/yasirkula/UnityNativeShare
위의 깃헙 페이지에 가서 Release tab에 가서, Package 파일을 다운로드하여 사용도 가능하며, 해당 Plugin은 Unity Asset store 무료로 배포되어있습니다.
저는 Test할 때에 Asset store 검색해서 작업하고 있는 프로젝트에 Import 했습니다.
void Update()
{
if( Input.GetMouseButtonDown( 0 ) )
StartCoroutine( TakeScreenshotAndShare() );
}
private IEnumerator TakeScreenshotAndShare()
{
yield return new WaitForEndOfFrame();
Texture2D ss = new Texture2D( Screen.width, Screen.height, TextureFormat.RGB24, false );
ss.ReadPixels( new Rect( 0, 0, Screen.width, Screen.height ), 0, 0 );
ss.Apply();
string filePath = Path.Combine( Application.temporaryCachePath, "shared img.png" );
File.WriteAllBytes( filePath, ss.EncodeToPNG() );
// To avoid memory leaks
Destroy( ss );
new NativeShare().AddFile( filePath )
.SetSubject( "Subject goes here" ).SetText( "Hello world!" ).SetUrl( "https://github.com/yasirkula/UnityNativeShare" )
.SetCallback( ( result, shareTarget ) => Debug.Log( "Share result: " + result + ", selected app: " + shareTarget ) )
.Share();
// Share on WhatsApp only, if installed (Android only)
//if( NativeShare.TargetExists( "com.whatsapp" ) )
// new NativeShare().AddFile( filePath ).AddTarget( "com.whatsapp" ).Share();
}
사용법은 매우 쉽습니다. 위의 코드는 Github Readme.md에 설명되어있는 부분을 가져온것인데요.
예제 코드에서는 화면을 Screen shot한 이미지를 Title과 text, URL과 함께 공유하는 코드입니다
해당 코드를 참고해서 만든 간단한 Sample입니다
해당 플러그인을 사용한 Sample code는 아래의 깃헙을 참고하세요 감사합니다
github.com/superbderrick/UnitySocialShare
반응형
'Unity' 카테고리의 다른 글
Unity Firebase analytics IDFA 정보 수집없이 사용하기 (0) | 2022.12.05 |
---|---|
"USING MEMORYADRESSES FROM MORE THAN 16GB OF MEMORY" Unity 앱 Crash (0) | 2022.11.15 |
Unity Android 앱 아이콘 적용하기 (0) | 2022.11.08 |
Unity Error case regarding com.unity.collab-proxy@1.8.0 (0) | 2022.03.10 |
GADInvalidInitializationException: The Google Mobile Ads SDK was initialized without an application ID (0) | 2022.02.15 |