I would like some help writing some more efficient code, I have this code here:
public void accel1Check()
{
currentAchievement = accel1Description;
currentAchievement.active = true;
}
public void accel2Check()
{
currentAchievement = accel2Description;
currentAchievement.active = true;
accel1Description.active = false;
}
I have my achievements mapped to buttons, when the user presses a button I would like to display the information it holds, the problem now is they overlap each other unless I disable them all when I press on one. This is not efficient as I have around 20 achievements and so would like to minimize the code.
I think I need something like a currentAchievement variable and previous achievement variable which will hold this data but I’m having some trouble figuring it out, if anyone could help here I’d appreciate it
I’ve managed to get it working more efficiently, I use a current and previous achievement variable to hold both sets of data, I then use the function at the botton to check whether to previous achievement is set to null, if it is not, I then set the previous achievement to be set to the current achievment, then set the current achievement to that of the new button I press, sounds like a mouthful, hopefully the code makes it clearer:
public GameObject accel1Description;
public GameObject accel2Description;
public GameObject bounce1Description;
private GameObject currentAchievement;
private GameObject previousAchievement;
void Start()
{
previousAchievement = null;
}
public void accel1Check()
{
checkAchieveIsNull();
currentAchievement = accel1Description;
currentAchievement.active = true;
}
public void accel2Check()
{
checkAchieveIsNull();
currentAchievement = accel2Description;
currentAchievement.active = true;
}
public void bounce1Check()
{
checkAchieveIsNull();
currentAchievement = bounce1Description;
currentAchievement.active = true;
}
void checkAchieveIsNull()
{
if (currentAchievement != null)
{
previousAchievement = currentAchievement;
previousAchievement.active = false;
}
else
previousAchievement = null;
}
Create an array of booleans controlling each achievement. Then have an int, an achievement number, so achievementBool[achievementNumber] = true.