code ソーシャル

Unityアプリcodetips(55)

スポンサーリンク

//tips

//テスト広告を外したい時

テスト広告ではなく、実際の広告を運用したいときは、unityのservicesにあるtestmodeのチェックをきちんと外すのを忘れない。

実際にアプリをリリースして本番環境で広告を表示させるようにした時に、広告の実績をUnity Dashboardで確認することができる。

//unityでのsnsシェア設定

SocialConnectorをインストールしてもSocialConnector.Share(tweetText, tweetURL, imgPath);が認識されないので、段階的に問題を確認していく。

まず、SocialConnectorの名前空間が認識されていないので、そもそもの名前空間の役割と使われ方を確認する。

名前空間は、スクリプトクラス名同士の被りをなくすため用いられるもので、例えば、using Enemy;を宣言しておくと、

public class Controller1 : MonoBehaviour

のController1が自動的にEnemy.Controller1となる。

https://docs.unity3d.com/ja/2018.4/Manual/Namespaces.html#:~:text=%E5%90%8D%E5%89%8D%E7%A9%BA%E9%96%93%E3%81%AF%E3%82%AF%E3%83%A9%E3%82%B9%E5%90%8D,%E3%82%8B%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%AE%E9%9B%86%E5%90%88%E3%81%A7%E3%81%99%E3%80%82&text=namespace%20Enemy%20%7B%20public%20class%20Controller1,MonoBehaviour%20%7B%20...%20%7D%20%7D

試しにSocialConnector.ShareからSocialConnector.の部分を抜いてみたが、

Assets/script/SNS/SNS.cs(34,9): error CS1501: No overload for method 'Share' takes 3 arguments

というエラーが発生した。

この名前空間を使用するには、namaespaceで設定する必要がある。

例えば下記のように設定できる。

namespace FolderA
{
namespace FolderB
{
public class A : Monobehaviour
{
Void Start(){}
}
}
}
この宣言された名前空間のAを使用するためには

using FolderA.FolderB;

public class B : Monobehaviour
{
Void Start()
{
A a=GetComponent<A>();
}
}
となりFolderAの中にあるFolderBのAというメソッドを取り出すことができる。

SocialConnectorのスクリプトには

namespace SocialConnector
{
public class SocialConnector
{
とされており、SocialConnector下にpublic static void Share があるので記載方法として、using SocialConnector;を宣言してからの、 SocialConnector.Shareは間違っていないことがわかる。

public const int THREE = 3;をSocialConnectorのpublic static void Share下に入れて、SNSクラス内のデバックで名前空間→クラス→変数がきちんと読み込めるか確認してみる。

名前空間SocialConnectorに変数を追加したものを、SNSクラス内できちんと確認できた。

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

public class SNS : MonoBehaviour
{
void Start()
{
Debug.Log("確認");
Debug.Log(SocialConnector.SocialConnector.THREE);
Debug.Log(SocialConnector.SocialConnector.Four);

//namespace:SocialConnector class:SocialConnector 変数:THREE
}

public void Share()
{
StartCoroutine(_Share());
}

public IEnumerator _Share()
{
string imgPath = Application.persistentDataPath + "/image.png";

// 前回のデータを削除
File.Delete(imgPath);

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

// 撮影画像の保存が完了するまで待機
while (true)
{
if (File.Exists(imgPath)) break;
yield return null;
}

// 投稿する
string tweetText = "";
string tweetURL = "";
//SocialConnector.Share(tweetText, tweetURL, imgPath);
}
}

名前空間の追加部分は先頭と最後の部分。

namespace SocialConnector
{
public class SocialConnector
{
public const int THREE = 3;
および
#endif

public static void Share (string text)
{
Share (text, null, null);
}

public const int Four = 4;
となっている。

問題になっているのはtwitterへのアクセスではないかと考えられる。

ここでSocialConnectorを使わずにtwitterへアクセスする方法も確認する。

紹介されているNative Shareを試してみるときちんとshare機能が使えた。

スクリプトは下記。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;

public class SNS2 : MonoBehaviour
{
private string shareMessage;

public void ClickShareButton()
{
shareMessage = "Insane!";
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("Ninjya Travel").SetText(shareMessage)
.SetCallback((result, shareTarget) => Debug.Log("Share result: " + result + ", selected app: " + shareTarget))
.Share();

}

}

人気の記事

1

皆さん、ついに、エアラインでも、サブスクリプションが始まったのはご存じですか? まだ実験段階ですが、ANAが、定額全国住み放題サービスを提供する「ADDress」と組んで、国内線を4回まで定額利用可能 ...

2

無料でネットショップを開けるアプリとして多くの人に驚きを与えたBASE株式会社が、2019年10月25日東証マザーズに上場しました。2020年2月時点で90万店を超えるショップを抱えるまでに成長してい ...

3

2011年にサービスを開始してから圧倒的な成長率を誇るインテリア通販サイト 【FLYMEe/フライミー】を皆さんご存じでしょうか。 「自分のイメージするインテリア、本当に欲しいインテリアがどこにあるの ...

4

ついに、noteの月間アクティブユーザー数が4400万人(2020年3月時点)に到達しました。 そもそも、「note」とは、クリエイターが、文章やマンガ、写真、音声を投稿することができ、ユーザーはその ...

5

ボードゲームカフェが1日2回転で儲かるという記事をみつけたので興味を持ち、調べてみました。 まずは、需要がどれくらいあるのか、市場のようすからみていきましょう。 世界最大のボードゲーム市場はドイツで、 ...

-code, ソーシャル
-,

Copyright© BUSINESS HUNTER , 2023 All Rights Reserved Powered by AFFINGER5.