Я пытаюсь создать игру с 2 уровнями. Счет, набранный игроком на уровне 1, должен сохраняться до уровня 2. Но игра зависает на уровне два. В начале уровня 2 должно быть 2 объекта уровня, но во время отладки я обнаружил, что метод FindObjectsOfType<Level>()
возвращает 1.
public class Level : MonoBehaviour
{
[SerializeField] TextMeshPro text ;
[Range(0,10)][SerializeField] float speed;
public int blocksAvailable, points;
// Start is called before the first frame update
void Start() {
blocksAvailable = countBlocks();
points = 0;
}
private void Awake() {
int levelObjectCount = FindObjectsOfType<Level>().Length;
if (levelObjectCount > 1) {
Destroy(gameObject);
}
else {
DontDestroyOnLoad(gameObject);
}
}
// Update is called once per frame
void Update() {
text.text = points.ToString();
if (blocksAvailable == points) {
SceneManager.LoadScene(2);
}
Time.timeScale = speed;
}
public int countBlocks() {
int blocks = GameObject.FindGameObjectsWithTag("Block").Length;
return blocks;
}
public void addPoints() {
points++;
}
}