【发布时间】:2019-06-08 18:22:16
【问题描述】:
我正在尝试更改我的游戏的背景,它正在运行,但也导致了 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;
}
}
所以我尝试更改网格渲染器的材质,并为我设置为活动和虚假的每个背景制作单独的游戏对象。
我正在使用网格渲染器来制作一个跟随相机无限滚动的背景。
【问题讨论】: