c# - 如何修复在 LevelValue 更改时生成对象的减少时间
问题描述
有一个带有生成对象的脚本,我想在 LevelValue 上升时降低 spawnRate。
所以我做了每10秒增加LevelValue的功能(效果很好)
但是当我尝试将它放在其他脚本中以减少值时,虽然它正在减少它,但不是当 LevelValue 在屏幕上发生变化时。
它在快速减少,前 10 秒,然后是 8、6、4、2、1 等等。
无法理解我做错了什么,好像 LevelValue 的行为与错误的行为相同,但在这里它有效,但在其他地方却没有。
我错过了什么吗?希望这不是什么愚蠢的错误。
我在屏幕上显示 LevelValue 的功能:
public class TimeLevel : MonoBehaviour
{
public static int levelValue = 1;
Text level;
void Start()
{
level = GetComponent<Text>();
}
void Update()
{
level.text = "Level:" + levelValue;
}
}
我增加LevelValue的功能:
public class TimerTEST : MonoBehaviour
{
private float timerSpeed = 10f;
private float elapsed;
void Update()
{
elapsed += Time.deltaTime;
if (elapsed >= timerSpeed)
{
elapsed = 0f;
TimeLevel.levelValue += 1;
}
}
}
我的产卵对象功能随着时间的减少:
public class SPawnHorizontal : MonoBehaviour
{
public GameObject enemy1;
public float spawnTime1 = 1.0f;
public float minSpawnTime = 0.3f;
public float decreaseSpawnTime;
private Vector2 screenBounds;
void Start()
{
screenBounds = Camera.main.ScreenToViewportPoint(new
Vector3(Screen.width, Screen.height, Camera.main.transform.position.z));
StartCoroutine(EnemyWave1());
private void spawnEnemy1()
{
GameObject a1 = Instantiate(enemy1) as GameObject;
a1.transform.position = new Vector2(screenBounds.x * - 20,
Random.Range(-20,20 ));
switch (TimeLevel.levelValue)
{
case 2:
spawnTime1 -= decreaseSpawnTime;
break;
case 3:
spawnTime1 -= decreaseSpawnTime;
break;
case 4:
spawnTime1 -= decreaseSpawnTime;
break;
}
}
解决方案
推荐阅读
- asp.net - 如何在.net核心中每次启动时限制登录和调用数据库
- authentication - 如何修复 smpt 错误 (435) 和 exim 配置错误
- python - 使用 Scikit-Learn 的 RandomizedSearchCV 模块,你如何保证某组超参数设置都会被测试?
- python - 有没有办法刮掉没有属性的标签内的文本?
- python - 错误:命令“gcc”以退出状态失败 - 在 docker centos 上安装 ibm_db 时
- android - 房间数据库错误:迁移时出现 IllegalStateException
- javascript - JS 用新的随机 HEX 颜色替换每种 HEX 颜色
- kubernetes - 如果来自跨域,Istio 1.6 AuthorizationPolicy 没有正确的响应代码
- matlab - Matlab 中的“imread”和 OpneCV 中的“cv.imread”有什么区别?
- mongodb - 如何使用 MongoDB 获取每个仓库的总数量?