Я пытаюсь изменить фон моей игры, и она работает, но также вызывает отставание на Android.
Я связал два разных решения, но с одинаковыми результатами.Прежде всего, с изменением фона управляет переменная int, которая имеет случайное значение между двумя числами и число с плавающей точкой, которое увеличивается каждую секунду на 10f, что используется как оценка.
Здесь также есть некоторый другой код, ноЯ удалил их отдельно, и кажется, что это фоновый код, который вызывает отставание.
Вот текущий код:
rand1 = Random.Range(0, 4);
rand2 = Random.Range(4, 8);
rand3 = Random.Range(8, 12);
//start off with a random blue background
BGlist[rand1].SetActive(true);
// BGmesh.material = BGmat[rand]; //OTHER SOLUTION - change material of mesh renderer
}
void Update()
{
//Set starttext to false if the character move
if (lvlmang.left || lvlmang.right)
{
startText.SetActive(false);
//every second score and speed increases
aliveTime += Time.deltaTime;
if (aliveTime >= 1)
{
scores += 10f;
scores2 += 10f;
speedManager += 10f;
speedManager2 += 10f;
speedManager3 += 10f;
scoreText.text = scores.ToString();
scoreText2.text = scores2.ToString();
aliveTime -= (int)aliveTime; //reset
}
}
//Increase speed after 8 seconds
if (speedManager == 80f)
{
pControl.speed += 0.25f;
speedManager = 0f;
}
//start screen fade every 30 seconds (preparing for background change)
if (speedManager2 == 300f)
{
fadingBG.StartFading();
speedManager2 = 0f;
}
if (speedManager3 == 310f || speedManager3 == 1213)
{
//Random yellow background
//Set the previous backgrounds game object to false
BGlist[0].SetActive(false);
BGlist[1].SetActive(false);
BGlist[2].SetActive(false);
BGlist[3].SetActive(false);
BGlist[rand2].SetActive(true); //Random yellow background
//BGmesh.material = BGmat[rand]; // OTHER SOLUTION - change material of mesh renderer
fadingBG.StopFading();
speedManager3 += 1f;
}
if (speedManager3 == 611f || speedManager3 == 1514)
{
//Random red background
//Set the previous backgrounds game object to false
BGlist[4].SetActive(false);
BGlist[5].SetActive(false);
BGlist[6].SetActive(false);
BGlist[7].SetActive(false);
BGlist[rand3].SetActive(true); //Random red background
// BGmesh.material = BGmat[rand];
fadingBG.StopFading();
speedManager3 += 1f;
}
if (speedManager3 == 912f || speedManager3 == 1815)
{
//Random blue background
//Set the previous backgrounds game object to false
BGlist[8].SetActive(false);
BGlist[9].SetActive(false);
BGlist[10].SetActive(false);
BGlist[11].SetActive(false);
BGlist[rand1].SetActive(true); //Random blue background
// BGmesh.material = BGmat[rand];
fadingBG.StopFading();
speedManager3 += 1f;
}
}
Итак, я попытался изменить материал рендера меша, а также сделать отдельные игровые объекты для каждого фона, который я установил активным и ложным.
Я использую средство рендеринга сетки для создания бесконечно прокручиваемого фона, который следует за камерой.