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

コロナによる需要変化 コロナパンデミックの影響で、人々は外に出られなくなり、自宅で過ごす時間が増えました。 この自粛ムードの中、下記のようなビジネスの需要変化が引き起こされています。 【利用者減少】 ...

2

米国レストランの決済時に毎日お世話になっていた「Square」のビジネスモデルについて本日はふれていきたいと思います。 「Square」とは、ネットにつながったモバイル端末と専用のカードリーダーを用意 ...

3

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

4

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

5

ナイキのSNKRSが、なぜこれほどまでに人気なのか?調べてみました。 きっかけは米国での友達との会話。彼は自分のシューズをみせて、「これ20万円もしたんだぜ。」と語ってくれました。 あまり靴に興味がな ...

-code, ソーシャル
-,

Copyright© BUSINESS HACKER , 2020 All Rights Reserved Powered by AFFINGER5.