在 Unity 中增加 Google Play 游戏成就的问题
Posted
技术标签:
【中文标题】在 Unity 中增加 Google Play 游戏成就的问题【英文标题】:Problem increasing an achievement in Google Play Games in Unity 【发布时间】:2020-08-20 21:27:03 【问题描述】:我的成就会随着幸存的时间而增加。 我用 Time.time 计算存活时间。当我死时,我会使用 Time.time 值增加成就以增加存活秒数,但它增加的次数远远超过应有的数值。我的代码:
using UnityEngine;
using UnityEngine.UI;
using GooglePlayGames;
public class Timer : MonoBehaviour
private float StartTime;
public static float TimerControl;
void Start()
StartTime = Time.time;
void Update()
//The player is alive
if (PlayerController.dead == false)
TimerControl = Time.time - StartTime;
//The player is dead
if (PlayerController.dead == true)
PlayGamesPlatform.Instance.IncrementAchievement(GPGSIds.achievement_survivor, (int)(TimerControl), (bool success) =>
);
在成就中增加的生存时间远远大于应有的时间。
有什么建议吗?谢谢!
【问题讨论】:
它增加了多少与应该增加多少? 成就是总共生存1小时(3600步,每秒1步)。在我上一次做的测试中,我存活了 23 秒,并且增加了超过 8% 的成就……这没有意义 【参考方案1】:试一试,如果它不起作用,请告诉我调试结果是什么。
using UnityEngine;
using UnityEngine.UI;
using GooglePlayGames;
public class Timer : MonoBehaviour
void Update()
//The player is dead
if (PlayerController.dead == true)
Debug.Log("Time : " + Time.time);
PlayGamesPlatform.Instance.IncrementAchievement(GPGSIds.achievement_survivor, (int)(Time.time), (bool success) =>
);
编辑:好吧,我想我知道你在更新循环中增加它发生了什么,所以你必须多次实施它
bool recorded = false;
// ...
//The player is dead
if (PlayerController.dead == true && !recorded)
PlayGamesPlatform.Instance.IncrementAchievement(GPGSIds.achievement_survivor, (int)(TimerControl), (bool success) =>
);
recorded = true;
【讨论】:
生存20秒,成就提升62%。它不起作用,控制台没有显示任何内容。 您是从编辑器运行的吗?如果您的控制台没有显示任何内容并且您的调试部分(白色感叹号)处于活动状态并且搜索框中没有文本过滤器,则不会调用此方法,并且您的成就会从不同的脚本中递增跨度> 从编辑器运行控制台不会显示与计时器相关的任何内容。从电话里跑出来什么也没显示。不可能是从另一个脚本中增加成就的,我没有在其他地方写过它 在我的游戏中,我有一个显示秒数并完美显示的计时器:GetComponent您是否尝试过使用Time.deltaTime
?
或者将该代码块放入 -
void FixedUpdate()
//code
【讨论】:
以上是关于在 Unity 中增加 Google Play 游戏成就的问题的主要内容,如果未能解决你的问题,请参考以下文章
小松教你手游开发unity实用技能Unity Mesh更新的时候增加内存
Google Play 游戏和 GoogleMobileAds 在 Unity 5 中无法协同工作
如何在 Unity 中添加 Google Play 游戏注册脚本
Unity Google Play 游戏插件无法在 Xcode iOS 中编译