Chman / Moments

A quick GIF replay recorder for Unity
zlib License
856 stars 118 forks source link

how to share recorded gif #20

Open stickylabdev opened 6 years ago

stickylabdev commented 6 years ago

how to do ? in android

Nameless77 commented 4 years ago

NOTE : This Is works only for Android/IOS.

yes you can definetly share GIF all you need to do just download a plugin for that which is called NativeShare you can download it from here : https://github.com/yasirkula/UnityNativeShare

it is also avilable in unity asset store: https://assetstore.unity.com/packages/tools/integration/native-share-for-android-ios-112731

just create a new scene and import that unity package

after that create a new script(give it a name you want).

then paste this code:

void Update() { if( Input.GetMouseButtonDown( 0 ) ) StartCoroutine( TakeSSAndShare() ); }

private IEnumerator TakeSSAndShare() { 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!" ).Share();

// Share on WhatsApp only, if installed (Android only)
//if( NativeShare.TargetExists( "com.whatsapp" ) )
//  new NativeShare().AddFile( filePath ).SetText( "Hello world!" ).SetTarget( "com.whatsapp" ).Share();

}

after that for testing create a build for android and when you click on the screen you can share a screenshot to social media.

for the GIF file you just need this code

void Update() { if( Input.GetMouseButtonDown( 0 ) ) StartCoroutine( TakeSSAndShare() ); } private IEnumerator TakeSSAndShare() { yield return new WaitForEndOfFrame(); string filePath = Path.Combine( yourGIFfilepath , yourGIFname.gif ); //both perameters must be in string format. new NativeShare().AddFile( filePath ).SetSubject( "Subject goes here" ).SetText( "Hello world!" ).Share(); }

and after building apk when you click on screen you can share that gif file to social media. (Remember some social media platform does not support gif file format so just keep that in your mind).

stickylabdev commented 4 years ago

it's been a while ,, im so sad , but thanks