12/20/2017

[Unity2017.2.0f3]Unityで画像付きシェア機能をつけるテスト

ゲームには大抵ついている画像付きのシェア機能。
やっぱりこういうの付けてみたくなったので調べてみました。
そうしたら、「SocialConnector」を使っている人が多いようなので素直にダウンロードしました。



こういうものを作れる人はすごいし、とてもありがたいですよね。
https://github.com/anchan828/social-connector

ほぼほぼこちらの記事の通りにやりました。
わかりやすかったです。どうもありがとうございます!
Unity×Android×SocialConnectorでツイート(シェア)機能をつけてみる - くらげになりたい。

秋頃はちょっとエラー出るとさっぱりわからなくて諦めたんだけど、今回は記述の意味が理解できてきた感じなので、多少は成長しているらしい、、、かな?


using UnityEngine;
using System.IO;
using System.Collections;
using SocialConnector;
using UnityEngine.UI;

public class SNSCtrl : MonoBehaviour
{
    public void Share()
    {
        StartCoroutine(ShareScreenShot());
    }

    IEnumerator ShareScreenShot()
    { 

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

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

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

        yield return new WaitForEndOfFrame();

        // アプリやシーンごとにShareするメッセージを設定
        string text ="ツイート内容\n#hashtag ";
        string URL = "url";
        yield return new WaitForSeconds(1);

        //Shareする
        SocialConnector.SocialConnector.Share(text, URL, imagePath);
    }
}



ボタンにShare()という関数を設定してあげたらできました!

変えたところといえば、、、
「Application.CaptureScreenshot(fileName);」
という書き方が「Obsolete」=廃止ってことらしいので
「ScreenCapture.CaptureScreenshot(fileName);」にしたところぐらいですかね。
あとは実行時間の付与のところをちょっと変えました。

バージョンアップやらエラーはなかなかめんどいものがありますね。
エラー解消した後は、UnityもXCodeもすんなりビルドできました。

環境iOS10.3.2、iPhone6Plusで実際に実験。

テストアプリとしてシェアボタンだけ付けたものを用意。
「SHARE」をタップすると


どれにするか選べる画面が出てきた!


LINEもいた。LINEでも送ってみたけれど問題なかったです。


Twitterを選んだらこんな感じになったので「投稿」。


Twitterにもちゃんと反映されました。
また、「画像を保存」を選んだら「写真」フォルダに保存されていて、ファイル名を確認したら
設定通りだったので、こちらもひとまずOK。



この記述をそのまま今作っているゲームに組み込んで試してみたらうまくいきました。
ちょっと安心。
まだAndroidは試してないです。多分大丈夫なのかなあなんて。
Twitter、LINE、ローカルに保存、メール送信あたりができたし、Facebookは無視することにしました。
そういえばInstagramはどうするのかな? このあたりはまたいつか聞いてみよう。

0 コメント:

コメントを投稿