2016-04-03 13 views
1

Unityに共有ボタンを作成しようとしています。ボタンを1回押すだけで、携帯電話にインストールされているソーシャルメディアアプリケーションが表示され、ユーザーが共有できるようになります。私はFacebookの共有ボタンやTwitterの共有ボタンを作成する方法のチュートリアルを探し続けています。しかし、私はちょうどあなたがすべてのソーシャルメディアアプリケーションと共有できるようにするシンプルな共有ボタンを作成したい。次に例を示します。ソーシャルメディアUnityへの共有ボタン(Android)

EXAMPLE

私はいくつかの資産を見つけましたが、確かに彼らが正しい動作しますされていない場合。

アセット:https://www.assetstore.unity3d.com/en/#!/content/37320
このアセットを使用すると画像を共有できます。画像を共有する必要はありません。テキストのみです。しかし、私はそれを修正し、テキストだけを行うのは難しくないと思った。

答えて

1

これには2通りの方法があります。
1.ネイティブコードを作成するためにネイティブプラグインを作成し、ネイティブコードを呼び出すためにラッパーコードを書いてください。(ネイティブ関数を呼び出すために最も広く使われる方法でしょう)
2.コードをUnityで完全に記述し、AndroidJavaObjectを使用して関数を呼び出します。


オプション1 - ネイティブJavaコード+ユニティラッパー
は、ここで私は共有のためのコードをSOに見つけlinkです。
プラグインに関する私の以前の回答の1つにはlinkがあります。必要に応じてコードを変更することができます。

オプション2 - ネイティブコードなし。
この方法は少し面白いです。 UnityのAndroidJavaClass & AndroidJavaObjectを使用して、JARの必要性を排除します。以下のコードをC#スクリプトに貼り付けて、関数を呼び出してください。 (注、私はこのコードを試していませんが、エラーがあるかもしれません。がある場合は、私が知っていると私は私の応答を編集します)

private static AndroidJavaObject activity = null; 

private static void CreateActivity() { 
    #if UNITY_ANDROID && !UNITY_EDITOR 
    if(activity == null) 
     activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"). 
      GetStatic<AndroidJavaObject>("currentActivity"); 
    #endif 

} 

public static void ShareActivity (string title, string subject, string body) { 
    CreateActivity(); 
    AndroidJavaObject sharingIntent = new AndroidJavaObject("android.content.Intent", "android.intent.action.SEND") 
         .Call<AndroidJavaObject>("setType", "text/plain") 
         .Call<AndroidJavaObject>("putExtra", "android.intent.extra.TEXT", body) 
         .Call<AndroidJavaObject>("putExtra", "android.intent.extra.SUBJECT", subject); 

    AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent", activity) 
         .CallStatic<AndroidJavaObject>("createChooser", sharingIntent, title); 
    activity.Call("startActivity", intent); 
} 

があなたのAndroidManifestに活動を追加することを忘れないでください。 xml!

関連する問題