için Facebook Unity3D oyununda Android Unity3D oyununu depolamak, puanları almak ve skor tabloları oluşturmak için Facebook Unity SDK'sini kullanıyorum ama problemleri buldum ve anlayamıyorum. sebep.Facebook'taki kullanıcı puanı gönderilemiyor Unity
kullanıyorum:
- Unity Pro 5.3.3f1.
- Facebook Unity SDK 7.4.0.
- Grafik API'si 2.5.
Sanırım sorun olduğunu düşündüğüm kodu yayınladım. Bazen çalışır, ancak gerekli izinlere sahip olmama veya "bulunamadı" hatasını belirterek başarısız olur.
Oyun, Facebook geliştiricileri web sayfasında doğru bir şekilde yapılandırılmıştır. FacebookScore tipi uzun kapsüller ve beni birden fazla numara saklamak için Bitsel manipüle sağlayan bir yapıdır:
- -
public void RequestSetScore(FacebookScore facebookScore)
{
if (FacebookManager.Instance.accessToken == null)
{
FacebookManager.Instance.OnRequestSetScoreError("Application has not logged in to Facebook yet.");
return;
}
if (this.PermissionIsGranted("publish_actions"))
{
string requestUri;
requestUri = string.Format("{0}/scores?score={1}",
FacebookManager.Instance.accessToken.UserId,
facebookScore.ScoreValue.ToString());
FB.API(requestUri, HttpMethod.POST,
scoreSetRequestresult =>
{
// Esto se ejecuta cuando la respuesta se ha recibido, no inmediatamente
if (scoreSetRequestresult.Error != null)
{
// This is an event of my class
FacebookManager.Instance.OnRequestSetScoreError(scoreSetRequestresult.Error);
}
else
{
// This is an event of my class
FacebookManager.Instance.OnRequestSetScoreSuccess();
}
}
);
}
else
{
// Pedir permisos para publicar puntuaciones
FB.LogInWithPublishPermissions(FacebookManager.Instance.publishPermissions,
permissionRequestresult =>
{
// Esto se ejecuta cuando la respuesta se ha recibido, no inmediatamente
if (permissionRequestresult.Error != null)
{
string requestUri;
requestUri = string.Format("{0}/scores?score={1}",
FacebookManager.Instance.accessToken.UserId,
facebookScore.ScoreValue.ToString());
FB.API(requestUri, HttpMethod.POST,
scoreSetRequestresult =>
{
// Esto se ejecuta cuando la respuesta se ha recibido, no inmediatamente
if (scoreSetRequestresult.Error != null)
{
// This is an event of my class
FacebookManager.Instance.OnRequestSetScoreError(scoreSetRequestresult.Error);
}
else
{
// This is an event of my class
FacebookManager.Instance.OnRequestSetScoreSuccess();
}
}
);
}
else
{
// This is an event of my class
FacebookManager.Instance.OnRequestSetScoreError(permissionRequestresult.Error);
}
}
);
}
}
// Métodos auxiliares
private bool PermissionIsGranted(string permission)
{
AccessToken token = Facebook.Unity.AccessToken.CurrentAccessToken;
foreach (string grantedPermission in token.Permissions)
{
if (grantedPermission == permission)
return true;
}
return false;
}
kodu hakkında
yorumlar. Bu yöntemler, oyunun her noktasında elde edilebilen ve sahne değişiklikleri ile korunan tekton benzeri bir sınıfa aittir.
Herhangi bir fikir benim için çok değerli olurdu, şimdiden teşekkürler.
sadece bir not, birçok kişi prime31 eklentileri kullanarak, FB ile şeyler yapmak. – Fattie
Sorun çözüldü. 64 bitlik bir tamsayı gönderiyordum, ancak Facebook Graph API'si sadece 32 bit işaretsiz bir tamsayı kabul edebilir. – lmgginspace
bir cevap olarak, bu insanlar yardımcı olacaktır. – Fattie