Я делаю бесконечную игру на лыжах, похожую на альт и лыжное сафари, и мне нужна помощь в увеличении скорости моего игрока на основе количества выполненных им трюков (сальто назад и т. Д. c). Вот код, который я написал до сих пор: (этот скрипт вычисляет счет игрока на основе сальто назад)
public class tricksScore : MonoBehaviour
{
private float flips = 0;
private float deltaRotation = 0;
private float currentRotation = 0;
private float WindupRotation = 0;
public static Rigidbody2D rigbod;
float divideByNum = 0.25f;
public Text scores;
public int trickscore;
private int iflip;
// Start is called before the first frame update
void Start()
{
scores = GetComponent<Text>();
}
// Update is called once per frame
void Update()
{
deltaRotation = (currentRotation - rigbod.transform.eulerAngles.z);
currentRotation = rigbod.transform.eulerAngles.z;
if (deltaRotation >= 300)
deltaRotation -= 360;
if (deltaRotation <= -300)
deltaRotation += 360;
WindupRotation += (deltaRotation);
flips = WindupRotation / 340;
iflip = (int)flips;
iflip = iflip * -1;
trickscore = iflip * 10;
Debug.Log(trickscore);
scores.text = "score " + trickscore;
}
}
Я импортирую переменную trickscore в скрипт, отвечающий за движение персонажа:
[SerializeField] private tricksScore trickscript;
public int trickscore;
public int oldScore = 0;
public int incInScore;
trickscore = trickscript.trickscore;
incInScore = trickscript.trickscore - oldScore;
if (incInScore >= 10)
{
oldScore = trickscript.trickscore;
}
if (incInScore > 1 && incInScore <= 10)
{
speed = speed + 10.15f;
}
else if (incInScore > 10 && incInScore <= 20)
{
speed = speed + 0.25f;
}
else if (incInScore > 20 && incInScore <= 50)
{
speed = speed + 0.50f;
}
else if (incInScore > 50 && incInScore <= 100)
{
speed = speed + 0.75f;
}
else if (incInScore > 100 && incInScore <= 200)
{
speed = speed + 1f;
}
else if (incInScore > 200)
{
speed = speed + 2f;
}
проблема в том, что скорость игрока не увеличивается, когда я выполняю обратное сальто, также я думаю, что переменная, которая хранит счет игрока (trickscore), также сломалась, потому что до написания скрипта она использовала для отображения игроки подсчитывают очки в консоли (debug.log) и в текстовом объекте («scores»), но больше ничего не происходит. Я полный код noob ie, и это первая игра, которую я делаю, и из-за этой проблемы вся разработка застряла на много дней, поэтому я буду очень признателен за любую помощь. Спасибо