首先,这里是我的脚本:如果这两个值彼此相等,然后做到这一点的C#
using UnityEngine;
using System.Collections;
using Steamworks;
public class Achievements : MonoBehaviour {
public static int currentScore=0;
public static int score300 = 300;
public static int score1000 = 1000;
public static int score3600 = 3600;
public static int score18000 = 18000;
public static int score72000 = 72000;
public static int score180000 = 180000;
void Start() {
if(SteamManager.Initialized) {
string name = SteamFriends.GetPersonaName();
Steamworks.SteamUserStats.SetAchievement("NEW_ACHIEVEMENT_1_0");
Steamworks.SteamUserStats.StoreStats();
Debug.Log(name);
}
}
void Update()
{
currentScore = PlayerPrefs.GetInt("highscore");
if (currentScore == score300 && SteamManager.Initialized){
Steamworks.SteamUserStats.SetAchievement("NEW_ACHIEVEMENT_5_0");
Steamworks.SteamUserStats.StoreStats();
}
if (currentScore == score1000 && SteamManager.Initialized) {
Steamworks.SteamUserStats.SetAchievement("NEW_ACHIEVEMENT_6_0");
Steamworks.SteamUserStats.StoreStats();
}
if (currentScore == score3600 && SteamManager.Initialized) {
Steamworks.SteamUserStats.SetAchievement("NEW_ACHIEVEMENT_7_0");
Steamworks.SteamUserStats.StoreStats();
}
if (currentScore == score18000 && SteamManager.Initialized) {
Steamworks.SteamUserStats.SetAchievement("NEW_ACHIEVEMENT_8_0");
Steamworks.SteamUserStats.StoreStats();
}
}
}
正如你所看到的,我有一个持有不同数量的公共整数。我也在使用当前的steamworks.net,我试图看看我能否与scoreXXX匹配“高分”(已经建立并正常工作)。如果发生这种情况,我希望脚本放弃成就。
我执行if(x = x)函数是否错误?有人可以帮忙吗?
比较看起来不错。你确定分数会以增量递增,并且在'Update'时完全相等吗?你可能想使用'> ='。在加载到调试之后,我会添加一些“currentScore”的值的记录,并且可能在每个“if”块的内部记录,以验证块是否已输入。 – ryachza
@GiladGreen我假设基于脚本实际上没有“落下成就”的“我想脚本放下成就”。 – ryachza