そういうのがいいブログ

アプリ個人開発 まるブログ

アプリ開発覚え書き

【Unity】 iOS×Android 共有機能実装 Social ConnectorをAdmobと共存させる方法

環境

Unity 2019.3.12f1
macOS Catalina 10.15.4

はじめに

有機能はSocial Connectorを使用すれば簡単にできるとのことなので使ってみました。
私の能力では結構はまってしまったので実装手順をメモ

前提

Admob広告を使用するためGoogleMobileAdsのパッケージをインポートしている。
今回使用したバージョンはV5.1.0です。
UnityProjects.png

手順

1.ダウンロード
2.Unityにインポート
3.FileProviderに対応させる(Androidのみ)
 3-1.ファイル場所の移動
 3-2.マニフェストファイルの変更
4.書き込み設定変更(Androidのみ)
5.コードを書く
6.ボタンに割り当てる



1.ダウンロード
https://github.com/anchan828/social-connector#fileproviderに対応する GitHub_-_anchan828_social-connector__Social_Connector.png

2.Unityにインポート
Unity側でAsset > Import Package > Custom Packageから
SocialConnector.unitypackageを選択

3.FileProviderに対応させる(Androidのみ)
ダウンロードページにはこう書かれています。

>引用始まり    GitHub_-_anchan828_social-connector__Social_Connector.png >引用終わり
 
これをやるうえで注意しないといけないのは
GoogleMobileAdsのパッケージをインポートした時点で
PluginsフォルダとAndroidフォルダができあがっていること


結局なにをするのかというと次の2つです。
 3-1.ファイル場所の移動
 3-2.マニフェストファイルの変更

3-1.ファイル場所の移動 SocialConnector>Plugins>Androidの3つのファイルを Slack___Maru___スタジオしまづ Unityゲーム開発サロン.png

GoogleMobileAdsのパッケージをインストールすると生成される Plugins>Android に入れる ResultScene1_-_JobCheck_-_Android_-_Unity_2019_3_12f1_Personal__Personal___Metal_.png


3-2.マニフェストファイルの変更
先ほど移動した3つのファイルの一つであるAndroidManifestを編集
providerでかこまれているうちのandroid:authoritiesの内容を変更
Slack___Maru___スタジオしまづ Unityゲーム開発サロン.png

4.書き込み設定変更(Androidのみ)
Player設定/その他の設定/書き込み許可をExternal(SDCard)に変更
Slack___Maru___スタジオしまづ Unityゲーム開発サロン.png


5.コードを書く

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;//DateTimeを使うとき必要


public class Kyouyuu : MonoBehaviour
{
    //このShare()関数をボタンに割り付ける
    public void Share()
    {
        StartCoroutine(ShareScreenShot());
    }

    IEnumerator ShareScreenShot()
    {        
        //ファイル名が重複しないように実行時間を付与。
        string fileName = DateTime.Now.ToString("ScreenShot yyyy-MM-dd HH.mm.ss") + ".png";

        //スクリーンショット画像の保存先を設定。
        string imagePath = Application.persistentDataPath + "/" + fileName;

        //スクリーンショットを撮影
        ScreenCapture.CaptureScreenshot(fileName);

        // キャプチャを保存するので1フレーム待つ
        yield return new WaitForEndOfFrame();


        

        // Shareするメッセージを設定
        string text = "ツイート内容はここにかく \n#ハッシュタグ ";
        string URL = "宣伝のURL";

        //一秒待つ これをやらないとうまくできない
        yield return new WaitForSeconds(1);

        //Shareする
        SocialConnector.SocialConnector.Share(text, URL, imagePath);//スクショいれる時
        //SocialConnector.SocialConnector.Share(text, URL, null);//画像入れない時

    }
}



6.ボタンに割り当てる
自分の好きなボタンに割り当てる

おわりに

いろいろ格闘したわけですが、 苦労してネットからひろった情報は
Social Connectorのダウンロードページにかいてあるという始末。
これからはダウンロードページの説明よく読まなければ。。。

参考

https://www.tomog-storage.com/entry/2018/08/06/210815