to protect your game from cheaters a little bit more. i have developed a simple anti cheat that could support you.
Create a Folder in the Assets folder named Plugins and add the Dll in the Plugins folder
int count = 0;
ProtectedValue CountProtected;
private void InitValues()
{
CountProtected = new ProtectedValue(count); //ProtectedValue Supported Value types int, bool, string (beta)
count = CountProtected.GetInt(); // the value of protect
}
private void AddValue()
{
if (CountProtected.CompareValue(count))
{
count += 1;
CountProtected.ApplyNewValue(count);
}
else
{
count = CountProtected.GetInt();
Debug.LogError("CHEAT DETECTED!");
}
}
as a little extra you can encrypt and decrypt strings for example if you want to store important game data that should not be immediately recognizable
ValueEncryptor EncryptorManager = new ValueEncryptor("HASH"); // Create The ValueEncryptor with a Hash example: !7xbaZW92a@
string EnrcyptText = EncryptorManager.EncryptString("mySafeString"); // Encrypt the value "mySafeString";
string DecryptText = EncryptorManager.DecryptSrtings(EnrcyptText); // And Decrypt the Encrypt Value
important is that you don't set the scripting backend to mono but to IL2CPP when you build the game otherwise someone can easily read and change your csharp-assembly.dll with dnSpy. To do this go to Edit > Project Settings > Player in your unity project and under other settings you will find it.