Facebook のプロジェクトでは、Prime31 (こちら) の Android 用 SocialNetwork プラグインを使用しています。
デモシーンを使用すると、すべてうまくいきます。単一のウィンドウで 3 つのボタン (init、login、share) を作成すると、うまく機能します。しかしFacebookAndroid.init()
、最初の更新 (またはAwake
またはStart
) で使用し、ゲームのウィンドウにログインすると、FB ウィンドウ セッションへのログインが無効になり、何も共有できません。
私のFacebookコントローラーのリスト:
public class FacebookController : MonoBehaviour
{
public static FacebookController instance;
void Awake ()
{
instance = this;
}
private bool isFirst = true;
void Update ()
{
if (isFirst)
{
isFirst = false;
#if UNITY_ANDROID
FacebookAndroid.init();
#endif
}
}
public void Login()
{
#if UNITY_ANDROID
var permissions = new string[] { "publish_actions", "publish_stream" };
FacebookAndroid.setSessionLoginBehavior(FacebookSessionLoginBehavior.SUPPRESS_SSO);
FacebookAndroid.loginWithPublishPermissions(permissions);
#endif
}
public void Logoff()
{
#if UNITY_ANDROID
FacebookAndroid.logout();
#endif
}
public bool IsLogged()
{
#if UNITY_ANDROID
FacebookAndroid.isSessionValid();
#endif
return false;
}
public void Share(string name, string message)
{
#if UNITY_ANDROID
if (FacebookAndroid.isSessionValid())
{
var parameters = new Dictionary<string, object>
{
{ "link", "http://prime31.com" },
{ "name", name },
{ "picture", "http://prime31.com/assets/images/prime31logo.png" },
{ "caption", message }
};
FacebookAndroid.showFacebookShareDialog(parameters);
}
#endif
}
}