我正在使用下面的脚本在我的android游戏中使用google play服务的成就,然而这些成就似乎只在下一个游戏会话中弹出,而不是在玩的过程中。有人能帮我吗?
using UnityEngine;
using System.Collections;
using GooglePlayGames;
using UnityEngine.SocialPlatforms;
public class main_achievements : MonoBehaviour {
//public AudioClip achievement_sound;
public int score;
public int redcoin;
public int lightningcollected;
public int purple;
public int blue;
public int loop;
public int submit;
public int prize;
public int coinscollected;
public int jackpot;
void Start () {
//initializing the social platform stuff
//PlayGamesPlatform.DebugLogEnabled = true;
//PlayGamesPlatform.Activate();
score = PlayerPrefs.GetInt("currentscore",0);
redcoin = PlayerPrefs.GetInt("redcoin");
lightningcollected = PlayerPrefs.GetInt("lightningcollected");
blue = PlayerPrefs.GetInt("blue");
purple = PlayerPrefs.GetInt("purple");
loop = PlayerPrefs.GetInt("loop");
submit = PlayerPrefs.GetInt("submit");
prize = PlayerPrefs.GetInt("prize");
coinscollected = PlayerPrefs.GetInt("currentcoins");
jackpot = PlayerPrefs.GetInt("jackpot", jackpot);
}
void Update() {
//score for the first time achievement
if (score > 1){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQAg", 100.0f,
(bool success) =>{
});
}
//score 500 achievement
if (score > 500){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQCQ", 100.0f,
(bool success) =>{
});
}
//score 1000 coin hoarder achievement
if (score > 1000){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQCg", 100.0f,
(bool success) =>{
});
}
//score 5000 coin treasurer achievement
if (score > 5000){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQCw", 100.0f,
(bool success) =>{
});
}
//score 10000 stormer achievement
if (score > 10000){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQDA", 100.0f,
(bool success) =>{
});
}
//score 15000 coin addict achievement
if (score > 15000){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQDQ", 100.0f,
(bool success) =>{
});
}
//score 30000 coin dependent achievement
if (score > 30000){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQEg", 100.0f,
(bool success) =>{
});
}
//score 100,000 coin god achievement
if (score > 100000){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQEw", 100.0f,
(bool success) =>{
});
}
//activate bonus ring achievement
if (redcoin == 1){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQAw", 100.0f,
(bool success) =>{
});
}
//activate lightning achievement
if (lightningcollected == 1){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQBA", 100.0f,
(bool success) =>{
});
}
//collect 5 purple coins achievement
if (purple == 5){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQCA", 100.0f,
(bool success) =>{
});
}
//blue in the dropzone achievement
if (blue == 1){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQBQ", 100.0f,
(bool success) =>{
});
}
//shoot the loop achievement
if (loop == 1){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQBg", 100.0f,
(bool success) =>{
});
}
//climb the ladder
if (submit == 1){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQBw", 100.0f,
(bool success) =>{
});
}
//first prize
if (prize == 1){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQDg", 100.0f,
(bool success) =>{
});
}
//pocket some coins achievement
if (coinscollected > 100){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQDw", 100.0f,
(bool success) =>{
});
}
//pockets full achievement
if (coinscollected > 500){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQEA", 100.0f,
(bool success) =>{
});
}
//pockets bursting achievement
if (coinscollected > 1000){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQEQ", 100.0f,
(bool success) =>{
});
}
//coin Mountain achievement
if (coinscollected > 2000){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQFA", 100.0f,
(bool success) =>{
});
}
//jackpot achievement
if (jackpot == 3){
Social.ReportProgress(
"CgkI7_rqgYIcEAIQFQ", 100.0f,
(bool success) =>{
});
}
}
}发布于 2014-11-27 22:31:20
首先,创建全局实现脚本(初始化和函数解锁实现等)。然后你应该,调用适当的函数,你想在游戏中使用。
例如,像“达到1000分”这样的成就。你应该像UpdateScore.cs一样调用相关的解锁实现函数。
你使用一个旗帜来控制任何成就,并不总是调用解锁成就。
记住在运行游戏时保留所有全局脚本引用,在卸载游戏时保留所有playerpref。
https://stackoverflow.com/questions/26317930
复制相似问题