2014-10-11 76 views
0

我使用下面的脚本在我的Android游戏中使用谷歌播放服务的成就,但成绩似乎只在下一个游戏会话弹出,而不是在播放期间任何人都可以帮助我?谷歌播放服务成就帮助(unity3d)

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) =>{ 
      }); 

     } 


} 
} 

回答

0

首先,您创建了全局成果脚本(initilizations和函数解锁成就等)。那么你应该在游戏过程中调用你想要使用的appropriorate功能。

例如,“达到1000分”的成就。您应该像UpdateScore.cs中调用相关的解锁成就函数。

您使用标志来控制任何成就并不总是调用解锁成就。

记住所有全局脚本引用在运行游戏时保持不变,当游戏卸载时所有的玩家偏好都保持不变。